BIO、NIO、AIO编程详解(中)
@(IO)[BIO|NIO|AIO]
接下来看Java NIO。
NIO概述理解
NIO是同步非阻塞IO.
我们知道,阻塞IO是在调用inputStream.read()和outputStream.write();两个方法时是阻塞的,在调用serverSocket.accept()的时候也是阻塞的。
那么NIO就要解决这两个问题:1.服务器启动后不用阻塞去等待客户端连接。2.在进行数据交互时不会阻塞(读取和写入)。
NIO:
有人称为New I/O,因为它是jdk1.4之后java新增的I/O类库,这是官方叫法。
因为jdk1.4之前,所有的I/O类库都是阻塞性I/O,而NIO的出现就是为了解决I/O的阻塞问题的。所以NIO还有一种叫法就是非阻塞I/O(Non-block I/O)
NIO核心组件
通道
缓冲区buffer
多路复用器Selector
NIO服务端
NIO服务端序列图
|
|
NIO客户端
NIO服务端序列图
|
|