NIO/BIO

作者: 编码之路从零开始 | 来源:发表于2019-05-22 17:17 被阅读0次
BIO1.jpg

在BIO1图中:客户端先向服务器1请求数据,直到服务器返回数据之后才能向服务器2请求数据。依次循环如果某个服务器阻塞时间过长就会影响下一次的数据传输。无法处理多个连接


BIO2.jpg

在BIO2图中启用了两个线程来分别响应两个服务器的传输,其中一个服务器阻塞不会影响另一个。但是如果线程数过大就会影响效率,并且大部分线程线程大量时间都是阻塞的


NIO.jpg

在NIO中如果是可轮询状态,selector会不断的轮询两个连接,如果有注册的事件发生就去处理(此时是阻塞的),如果没有的话就一直轮询(如果是在BIO中如果没有对应的事件就阻塞到事件发生)。
所以说在NIO中可以使用单线程实现对多连接的处理

相关文章

网友评论

      本文标题:NIO/BIO

      本文链接:https://www.haomeiwen.com/subject/qinezqtx.html