双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

java nio 让我很纠结

Liusp Liusp 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
JAVA NIO出来后,大家都说比原IO性能好,我相信肯定绝对一定是这样的。
但是我很纠结,为什么呢?大致的理由是:IO机制一个socket连接对应一个输入/输出通道,一个输入/输出通道在对应一个线程,这样有多个请求,就需要开辟多个线程,这样对CPU的负担大大的提高。关系是一对一的。而NIO不必,通道已经由一个线程建立好了,有事就说话,说了就去做,而且在一个线程中建立了多个通道,可以同时做很多事情,不会像原先那样开辟多个线程,耗费CPU资源,关系是1对多的。这我就很不明白,如果ABCDE5个客户端去连接IO服务端请求数据,那5个线程是至少的。但是同样连接NIO服务端呢?是和一个线程的5个通道建立了联系了吗?所以只有1个线程.那我想问这个5个通道的数据请求是并行执行的呢还是顺序执行的呢?如果是并行,1个线程能做到吗啊? 如果顺序执行是不是有等待阻塞的时间?就算NIO不考虑执行的结果正确与否顺序执行下去,是不是总得有5次处理时间? 这个同IO5个线程并行处理5个请求,谁的性能会高呢?


...全文

相关推荐

评论 3
收藏 已收藏
分享
返回顶部
Liusp
高性能WEB开发 25,979 成员 4,366 内容