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包含“选择器”的概念。选择器是一个对象,可以监视多个通道的事件(例如:打开连接,读数据等)。因此,单个线程可以监视多个通道。
原文地址: https://www.zhblog.net/go/java/tutorial/java-nio-Introduction?t=606