码迷,mamicode.com
首页 > 其他好文 > 详细

Jetsever开源项目学习(五)Concurrent学习

时间:2016-01-06 01:32:13      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:

首先梳理一下整体的架构,总的来说就是一个生产—消费者的形式,建立在Executor framework上:

技术分享

 

1.每一个Lane包含一个名字string和线程池(ExecutorService),线程池其实就相当于worker集合
2.每一个Lane有一个计数器(AtomicInteger),用来记录进入这个Lane的session的数量,session集合其实就相当于相当于任务队列
3.每一个GameRoom属于一个Lane(也就是一个Lane中可以有多个GameRoom)。每当添加一个新的session,就根据其所属的GameRoom放到相应的Lane中,这样同一个GameRoom中sessions就会在一个线程中进行处理(一个Lane其实就相是一个线程),有利于session间的交互。但是不同的GameRoom中的Session数量可能不同,导致处理器核心负载不均(一个线程是在一个处理器上执行的)。

Jetsever开源项目学习(五)Concurrent学习

标签:

原文地址:http://www.cnblogs.com/Guoyutian/p/5104218.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!