BIO 和 NIO AIO

简介

BIO Blocking IO 阻塞IO

简单来说, 就是服务器对每一个接收数据请求, 开启一个线程进行对于数据和逻辑的处理, 但是能创建的线程数量有限. 很多处理逻辑开启的线程处于阻塞状态.

NIO Non-blocking IO 非阻塞 IO jdk1.4

简单来说, 服务器对于每一个接受数据的请求, 就是多路复用器,可以监听来自多个客户端的IO事件(简单来说就是异步非阻塞, 通过时间通知). 一个线程中就可以做到, 为每一个连接请求, 建立一个通道.

Selector 用来监听 Channel 的事件.

参考链接

https://blog.csdn.net/nangeali/article/details/82596887 (图画的好)

https://www.cnblogs.com/zedosu/p/6666984.html (逻辑清晰)

如何理解同步阻塞, 同步非阻塞和异步非阻塞

同步阻塞 : 小时候看着水开
同步非阻塞 : 可以干自己的事儿, 但是过一会儿就来查询一下.
异步非阻塞: 干自己的事儿, 水开了会开启事件通知你.

IO 和 NIO

IO 是面向流的操作, NIO 是面向缓冲区的操作.

AIO 还没掌握

不过是 JDK7 引入的.

Hope is a good thing,maybe the best of things,and no good thing ever dies.----------- Andy Dufresne
原文地址:https://www.cnblogs.com/eat-too-much/p/14939282.html