常见IO类型:
- 传统的同步阻塞I/O编程<BIO>
- 基于NIO的非阻塞编程
- 基于NIO2.0的异步非阻塞AIO编程
BIO缺点:
- 没有数据缓冲区,I/O性能存在问题
- 没有Channel概念,只有输入流和输出流
- 同步阻I/O通信,导致线程的长时间等待, 浪费资源
- 支持的字符集有限,硬件移植性不好。
NIO优点:
- 进行异步IO操作的缓冲区ByteBuffer。
- 进行异步IO操作的管道Pipe
- 进行各种IO操作的Channel。
- 支持多种字符集的编码和解码能力
- 基于Per实现正则表达式类库
- 文件通道FileChannel
NIO缺点:
- 没有统一的文件属性
- API能力较弱,
- 底层存储系统的高级API无法使用
- 所有发的文件操作都是同步阻塞调用,不支持异步文件读写操作
AIO基于NIO的改进:
- 提供批量处理文件的API
- 提供标准的文件SPI等
netty之IO演进之路
原文:https://www.cnblogs.com/wongandy/p/11489505.html