专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 高性能WEB开发

java nio 让小弟我很纠结

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
java nio 让我很纠结
JAVA NIO出来后,大家都说比原IO性能好,我相信肯定绝对一定是这样的。
但是我很纠结,为什么呢?大致的理由是:IO机制一个socket连接对应一个输入/输出通道,一个输入/输出通道在对应一个线程,这样有多个请求,就需要开辟多个线程,这样对CPU的负担大大的提高。关系是一对一的。而NIO不必,通道已经由一个线程建立好了,有事就说话,说了就去做,而且在一个线程中建立了多个通道,可以同时做很多事情,不会像原先那样开辟多个线程,耗费CPU资源,关系是1对多的。这我就很不明白,如果ABCDE5个客户端去连接IO服务端请求数据,那5个线程是至少的。但是同样连接NIO服务端呢?是和一个线程的5个通道建立了联系了吗?所以只有1个线程.那我想问这个5个通道的数据请求是并行执行的呢还是顺序执行的呢?如果是并行,1个线程能做到吗啊? 如果顺序执行是不是有等待阻塞的时间?就算NIO不考虑执行的结果正确与否顺序执行下去,是不是总得有5次处理时间? 这个同IO5个线程并行处理5个请求,谁的性能会高呢?




------解决方案--------------------
NIO的一个线程中当然是串行执行的,每次处理一个事件。
如果你的服务端每个请求处理时间较长,用NIO是比阻塞方式要好。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: