INDEX
BIO
- 即 阻塞 IO
- 读写请求会阻塞至有数据可供读写
- 等待内核数据就绪并将数据传输到阻塞区
- 会为每个请求开辟一个线程
因此遇到高并发时,线程数量会爆炸
PIO
- 即 伪异步阻塞 IO
- 通常配合线程池模型使用的 IO
- 解决了线程的频繁创灭问题
但最大线程数和等候队列都打满时依然爆炸
NIO
- 即 异步阻塞 IO
- 读写会阻塞,但读写请求不会
- 通过 Reactor 模式,注册 IO 事件
- 可供读写的数据准备就绪时,才开始正式读写
- 解决了从接收到读写请求,到可以真实进行读写之间的阻塞浪费
AIO
- 即 异步非阻塞 IO
- 读写不会阻塞
- 引入异步通道
- 代码简单
- 依赖 Netty