`
benx
  • 浏览: 277876 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

netty 疑惑

    博客分类:
  • java
 
阅读更多

 

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操作。

分享到:
评论
1 楼 he3109006290 2014-03-17  
我猜它应该有个算法,当出现长时间处理的情况的,它自动会启动另外的线程
来处理请求

相关推荐

    Netty学习资料.zip

    通过阅读这些笔记,你可以快速抓住 Netty 的关键点,解决学习过程中的疑惑,例如非阻塞I/O模型、线程模型、编码解码器的使用等。 课件则会系统地呈现 Netty 的各个知识点,可能包括Netty的基本架构(如BossGroup和...

    nettybook2:netty权威指南

    该项目是李林峰老师编写的netty权威指南(第二版)对应的内核。原始原始地址是: : 所以本人将其项目进行简单的maven转换,并且提交到github上。这样同志们就可以直接导入-> git查看。(当然有些有关更ant的操作,...

    NettyBook2:Netty权威指南第二版原始码

    下一步我想将书本中对源码的注解搬到项目中来,这样可以在调试代码的过程中,直接通过注解解决调试中的疑惑。 当然这些工作得到的李林峰老师的同意和认可,不信,你看: ://weibo....

    nettybook2:李林峰老师编写的netty权威指南(第二版)对应的源码,已经maven化

    该项目是李林峰老师编写的netty权威指南(第二版)对应的内核。原始原始地址是: : 所以本人将其项目进行简单的maven转换,并且提交到github上。这样同志们就可以直接导入-> git查看。(当然有些有关更ant的操作,...

    java解惑(转)

    在编程实践中,Java开发者经常会遇到各种疑惑和难题,这些问题可能涵盖语法、类库使用、内存管理、多线程、异常处理等多个方面。这篇博客或文档可能就是为了帮助开发者解决这些困扰,提高编程效率。 【描述】提到的...

Global site tag (gtag.js) - Google Analytics