IO/NIO

作者: Mrryo | 来源:发表于2018-08-16 10:52 被阅读0次

1、io主要分为:同步、异步、阻塞、非阻塞。

2、多路复用IO:多个tcp(或者多个Channel管道)连接被一个或少量线程处理。

select/poll:同时观察多个i/0,都没有准备好,就阻塞线程,当有i/o就绪,就唤醒线程,轮询所有i/o,找出已就绪的i/o进行处理。(i/o越多select阻塞越久)

epoll:只轮询就绪的i/o。

epoll对比select/poll优势:a.监控的描述符数量不受限制;b.监控的fd不影响效率,只有就绪的fd才会执行回调函数。

优化:

    一种优化方式是:将Selector进一步分解为Reactor,将不同的感兴趣事件分开,每一个Reactor只负责一种感兴趣的事件。这样做的好处是:a、分离阻塞级别,减少了轮询的时间;b、线程无需遍历set以找到自己感兴趣的事件,因为得到的set中仅包含自己感兴趣的事件。

3、BIO(同步阻塞,一个连接对应一个线程,基于流);NIO(同步非阻塞,一个请求对应一个线程,基于通道和缓存区);AIO(异步非阻塞,一个有效请求对应一个线程)。

相关文章

  • note

    Java IO,NIO,NIO2 以及与操作系统,磁盘 IO NIO模型selector NIO的核心是IO线程池...

  • Java NIO

    1、IO和NIO的区别? 1)IO面向流、NIO面向缓冲;2)IO是阻塞IO、NIO是非阻塞IO;3)无 与 选择...

  • IO/NIO/AIO & Netty

    IO/NIO/AIO 的区别: IO和NIO 又称为Blocking IO 和 No Blocking IO 即为...

  • java NIO详解

    NIO原理 NIO与IO的区别 首先来讲一下传统的IO和NIO的区别,传统的IO又称BIO,即阻塞式IO,NIO就...

  • Java NIO 记录(一)

    一、NIO简介 Java NIO (New IO , Non Blocking IO)。NIO是一个基于通道,...

  • Java NIO 和 IO 之间的主要差别

    NIO 和 IO 之间的主要差别 IO NIO 面向流 面向缓冲 阻塞IO 非阻塞IO 无 ...

  • NIO之十三-BIO VS NIO

    Java NIO vs. IO Main Differences Betwen Java NIO and IO S...

  • 3 java的IO

    java nio Java的IO体系:旧IO新IO:nio,用ByteBuffer和FileChannel读写ni...

  • IO、NIO

    IO、NIO Java NIO和IO之间第一个最大的区别是,IO是面向流的,NIO是面向缓冲区的。 Java IO...

  • 29、 Java IO与 NIO的区别(补充)

    Java IO与 NIO的区别(补充) NIO即New IO,这个库是在JDK1.4中才引入的。NIO和IO有相同...

网友评论

      本文标题:IO/NIO

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