首页 » 语言&开发 » Java » NIO笔记之I/O多路复用技术

NIO笔记之I/O多路复用技术

 

什么叫I/O多路复用技术

I/O多路复用技术是通过把多个I/O的阻塞复用到同一个select的阻塞上,从而使得系统在单线程的情况下可以同时处理多个客户端的请求。

Linux下I/O分类,阻塞I/O,非阻塞I/O,I/O复用技术(select/poll,epoll),信号驱动I/O,异步I/O。

Java的NIO主要是基于epoll的多路复用技术。

epoll相对select/poll的优点

  • 支持一个进程打开的socket描述符(FD)不受限制(受限于操作系统)。

  • I/O效率不会随着FD数目的增加而线性下降。

  • 通过内核和用户空间mmap同一块内存来加速消息传递。

  • API更加简单

JDK中的NIO历史

NIO1.0新增(JDK1.4)
  • 异步操作缓存区ByteBuffer

  • 异步操作管道Pipe

  • 异步或同步Channel、文件通道FileChanel

  • 多字符编码解码能力

  • 多路复用器selectors

  • 基于Perl实现的正则表达式类库

NIO2.0(JDK1.7)
  • 平台无关性的批量获取文件属性的API

  • 支持文件和套接字的AIO操作



原文链接:NIO笔记之I/O多路复用技术,转载请注明来源!

0