美文网首页
BIO与NIO的比较

BIO与NIO的比较

作者: WinkTink | 来源:发表于2019-05-13 09:44 被阅读0次

一.  线程数

        BIO:一个客户端连接就要使用一个服务端线程来进行处理

                  可能会有大量的想爱你成处于休眠状态,只是等待输入或输出(阻塞)

                  为每个线程分配调用栈,大约1M,服务端内存吃紧

                  即使服务端内存很大,线程数太大会导致线程上下文切换浪费大量时间

        NIO:一个服务端线程操作一个Selector,就可以处理成千上万的客户端连接

二.  阻塞情况

        BIO:读、写、接受连接都会发生阻塞

        NIO:只有Selector.select()会阻塞,其实是等待Channel上的“就绪事件”

三.  面向对象

          BIO:面向流

          NIO:面向Buffer

四.  适合点

           BIO:如果你有少量的连接使用非常高的带宽,一次发送大量的数据,也许典型的IO服务器实现可能非常契合

           NIO:如果需要管理同时打开的成千上万个连接,这些连接每次只是发送少量的数据,例如聊天服务器,实现NIO的服务器可能是一个优势。

相关文章

  • BIO与NIO的比较

    一. 线程数 BIO:一个客户端连接就要使用一个服务端线程来进行处理 可能会有大量的想爱...

  • NIO和BIO比较

    BIONIO面向流(Stream Oriented)面向缓冲区(Buffer Oriented)阻塞IO(Bloc...

  • 网络/IO基础

    一、BIO、NIO、AIO的概念 BIO,NIO,AIO的理解1BIO,NIO,AIO的理解2概念解释一个IO操作...

  • netty(六)NIO、BIO与AIO

    一、BIO与NIO 本小节将BIO与NIO放到一起进行分析,主要为了突出其差别。 1.1 对比stream和cha...

  • NIO简介

    BIO与NIO的区别 NIO 和 BIO 的区别主要体现在三个方面: NIOBIO基于缓冲区( Buffer )基...

  • 4.Netty框架-网络IO编程模板(NIO编程模型)

    一、什么是NIO? 与BIO有哪些区别? 1.什么是NIO? 1、NIO = Selector+Channel...

  • Tomcat最佳实践

    运行模式 Tomcat Connector三种运行模式(BIO, NIO, APR)的比较和优化。 BIO 一个线...

  • 【Tomcat】

    运行模式 Tomcat Connector三种运行模式(BIO, NIO, APR)的比较和优化。 BIO 一个线...

  • NIO高级编程与Netty入门(第十天)

    BIO与NIO IO(BIO)和NIO区别:其本质就是阻塞和非阻塞的区别 阻塞概念:应用程序在获取网络数据的时候,...

  • [JAVA系列]IO总结

    NIO BIO~

网友评论

      本文标题:BIO与NIO的比较

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