首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

关于NIO的议论

2012-08-25 
关于NIO的讨论MINA使用系列I/O线程处理读和写,这是很多典型NIO框架的手法。但是Netty要比MINA聪明得多,当发

关于NIO的讨论

MINA使用系列I/O线程处理读和写,这是很多典型NIO框架的手法。但是Netty要比MINA聪明得多,当发送Queue中是空的,Netty将直接发送数据,不再例行公事放入Queue中,如果发送Queue不是空的,Netty将这个数据放入队列,这时类似MINA做法。所以,Netty要快些?

?

我对种说法的评价是: 说了等于没说,兄弟还需努力。

?

最后,再说一下Netty的一个缺点,

大家看到这,发现我都没有提到读数据的情况,Netty读数据也是用Poller线程在读,

不管Acceptor放入多少个Socket,全是Poller线程在一个个地读,

把读到的数据放到Buffer后会触发MessageEvent事件(Netty是一个纯正的事件驱动框架,这是Tomcat、Jetty这类业余选手望尘莫及的),

此时会调用ChannelUpstreamHandler这类处理器的messageReceived方法,

messageReceived方法中的代码通常是业务相关的,但是执行messageReceived方法的线程却是Poller线程,

所以只要在messageReceived这种地方出现问题,比如有个Thead.sleep调用或者出现无限循环,

那么此时Netty跟死了没分别,Poller线程无法往下走了,所有Task都没法处理了。

1 楼 ahgf 2011-02-21   "之后去了Jboss",Trustin Lee应该没有去Jboss吧,只不过是Apache mina的其中一个开发者去了jboss,并且继续开发Netty。
Mina确实不错,我开发的一个应用,上线2个月了,服务一次没重启过,当然了,每天的业务量不是太多,但相比以前用直接用NIO类库开发的一个应用要好多了,欢迎大家继续交流Mina和Netty。

热点排行