原文连接
Java NIO 是 Java 1.4 引入的,用于替换标准的 Java IO 和 Java Networking API 的新的 API 接口,提供了一套与标准 IO API 完全不同的操作方式。
NIO 可以理解为 NEW IO 或者 Non-blocking IO。
Java NIO: Channels and Buffers
标准 IO API 是面向字节流与字符流的,NIO 是面向管道和缓存区的,数据总是从管道读取到缓冲区中,或者从缓冲区中写回到管道。
Java NIO: Non-blocking IO
Java NIO 开启非阻塞 IO 操作模式。例如:当一个线程从管道读取数据到缓冲区中时,可以同时去做其他事情,一旦数据写入缓冲区 ,线程可以继续处理后续的操作。对于从缓冲区写入数据到管道也是一样。
Java NIO: Selectors
Java NIO 中有一个 selectors 的概念,具体来说 selectors 就是一个可以监控多个管道时间状态的对象(比如:打开链接,接受数据等)。,因此,单线程可以做到监控多个管道的数据。
这些组件的工作原理将在本系列的下篇文章 Java NIO overview 中详细介绍。