BIO通信
- 一个线程负责连接
- 一请求一应答
- 缺乏弹性伸缩能力
伪异步IO通信
- 线程池负责连接
- M请求N应答
- 线程池阻塞
NIO通信
- 缓冲区Buffer
- 通道Channel
- 多路复用器Selector
AIO通信
- 连接注册读写事件和回调函数
- 读写方法异步
- 主动通知程序
四种IO对比
BIO | 伪异步IO | NIO | AIO |
---|---|---|---|
客户端个数 | 1个客户端1个线程 | N个客户端1个线程池,线程池有M个线程 | N个客户端1个线程 |
IO类型 | 阻塞同步IO | 阻塞同步IO | 非阻塞同步IO |
API使用难度 | 简单 | 简单 | 复杂 |
调试难度 | 简单 | 简单 | 复杂 |
可靠性 | 差 | 差 | 好 |
吞吐量 | 低 | 中等 | 高 |