NIO

Java NIO 教程

Posted by Forgus on 2019-03-09

Java NIO(New IO)是Java提供的IO API的另一种实现(jdk1.4+),这意味着标准的Java IO和网络API不再是唯一的选择方案。相对于标准IO,Java NIO框架提供了一种不同的工作机制来实现流。

通道和缓冲区

标准IO基于字节流和字符流来实现。NIO基于通道和缓冲区来实现。数据总是从一个通道读进缓冲区,或者从缓冲区写入通道。

非阻塞IO

Java NIO可以让你非阻塞地执行IO操作。例如,一个线程可以要求一个通道把数据读进缓冲区,当通道开始往缓冲区里写数据的时候,线程此时可以做其他的事情。一旦数据全部被读进缓冲区,线程再回来接着处理。从缓冲区往通道写数据同理。

选择器

Java NIO 框架引入了一个名为“选择器”的概念。选择器可以监听多个通道的事件(像:连接被打开,数据到达等等)。这样,单个线程可以监听多个通道的数据。


原文链接 作者:Jakob Jenkov