Java NIO (New IO) API 是一种替代 标准Java IO API 和 Java Networking API 的 API。
Java NIO 提供了一种不同于标准 IO 工作方式的实现。

Java NIO: Channels and Buffers

在标准IO API中,我们使用字节流(byte streams)和字符串流(string streams)。
在NIO中,我们使用ChannelsBuffers
数据(Data) 总是从Channel读取到Buffer中,或者从Buffer写到Channel

Java NIO: Non-blocking IO

Java NIO 是非阻塞的。举个例子:一个线程请求一个Channel把数据读取到Buffer里,当 Channel在读数据到Buffer过程中,这个线程可以去处理其他事情。当数据已经读取到Buffer后,线程可以开始处理这组数据。
反过来也是如此。

Java NIO: Selectors

Java NIO 包含一个叫做 Selectors 的概念。Selector 是一个对象,它可以监控多个Channel的事件(比如: 建立了连接、接收到数据等等)。因此,一个线程就可以监控多个Channel的数据。

参考

  1. Java NIO Tutorial