什么叫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多路复用技术,转载请注明来源!