Java NIO 简介

Netty 是基于 Java NIO 的封装。

Java NIO(新IO)是Java的替代IO API(来自Java 1.4),意味着可以替代标准Java IO和Java Networking API。 Java NIO提供了与标准IO API不同的IO处理方式。


1.Java NIO: Channels 和 Buffers

在标准IO API中,你可以使用字节流和字符流。在NIO中,你可以使用通道和缓冲区。数据总是从通道读取到缓冲区,或从缓冲区写入到通道。


2.Java NIO: Non-blocking IO

Java NIO使你可以执行非阻塞IO。例如,线程将通道数据读入缓冲区。当通道将数据读入缓冲区时,线程可以执行其他操作。一旦将数据读入缓冲区,线程就可以继续对其进行处理。将数据写入通道时也是如此。


3.Java NIO: Selectors

Java NIO包含“选择器”的概念。选择器是一个对象,可以监视多个通道的事件(例如:打开连接,读数据等)。因此,单个线程可以监视多个通道。


 

展开阅读全文