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