JAVA NIO:
始于Java1.4,提供了新的JAVA IO操作非阻塞API。
NIO中有三个核心组件:
Buffer缓冲区
Channel通道
Selector选择器
Buffer缓冲区:
缓冲区本质上是一个可以写入数据的内存块(类似数组),然后可以再去读取。此内存块包含在NIO Buffer对象中,该对象提供了一组方法,可以更轻松地使用内存块。
使用Buffer进行读取数据写入与读取,需要进行如下四个步骤:
1.将数据写入缓存区
2.调用buffer.flip(),转换为读取模式
3.缓冲区读取数据
4.调用buffer.clear()或buffer.compact()清楚缓冲区
Buffer工作原理:
ByteBuffer内存类型:
Channel通道:
SocketChannel:
ServerSocketChannel:
Seletor选择器:
NIO对比BIO:
NIO与多线程结合的改进方案: