netty之IO演进之路

常见IO类型:

  • 传统的同步阻塞I/O编程<BIO>
  • 基于NIO的非阻塞编程
  • 基于NIO2.0的异步非阻塞AIO编程

 BIO缺点:

  1. 没有数据缓冲区,I/O性能存在问题
  2. 没有Channel概念,只有输入流和输出流
  3. 同步阻I/O通信,导致线程的长时间等待, 浪费资源
  4. 支持的字符集有限,硬件移植性不好。

 NIO优点:

  1. 进行异步IO操作的缓冲区ByteBuffer。
  2. 进行异步IO操作的管道Pipe
  3. 进行各种IO操作的Channel。
  4. 支持多种字符集的编码和解码能力
  5. 基于Per实现正则表达式类库
  6. 文件通道FileChannel

 NIO缺点:

  1. 没有统一的文件属性
  2. API能力较弱,
  3. 底层存储系统的高级API无法使用
  4. 所有发的文件操作都是同步阻塞调用,不支持异步文件读写操作

AIO基于NIO的改进:

  1. 提供批量处理文件的API
  2. 提供标准的文件SPI等

 

posted @ 2019-09-09 02:14  落叶随风起  阅读(144)  评论(0编辑  收藏  举报