首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

netty 困惑

2012-09-07 
netty 疑惑?netty的nio 模式如下 ?一个线程Boss使用选择器监听OP_ACCEPT,当有accept请求过来时,挑选一个wo

netty 疑惑

?

netty的nio 模式如下

?一个线程Boss使用选择器监听OP_ACCEPT,当有accept请求过来时,挑选一个worker线程,注册到worker里面去

?

cpu内核*2个线程Worker监听OP_Read和OP_WRITE(实际上是线程池中这么多线程),当可读时,可写时,读取或写入数据,然后发起事件执行pipe中的hander链

?

问题在于,系统就这么几个线程,不管是accept或read或write 都是同步处理,假设出现在处理过程中出现死锁或长处理等逻辑,那么直接导致阻塞后面的处理。

?

我的建议,因为netty是基于事件处理机制,使用线程池,专门负责read和write事件的逻辑处理,不过这样处理可能会开启大量线程,如果线程开启太少还是会出现如上情况。

?

?

?

netty的写机制:netty不会主动注册OP_WRITE,只有当向netty的channal写入数据时,netty判断缓存区是否有等待写的数据才会开启OP_WRITE操作。

热点排行