File tree Expand file tree Collapse file tree 1 file changed +3
-3
lines changed
Expand file tree Collapse file tree 1 file changed +3
-3
lines changed Original file line number Diff line number Diff line change @@ -73,7 +73,7 @@ UNIX 系统下, IO 模型一共有 5 种: **同步阻塞 I/O**、**同步非
7373
7474### NIO (Non-blocking/New I/O)
7575
76- Java 中的 NIO 于 Java 1.4 中引入,对应 ` java.nio ` 包,提供了 ` Channel ` , ` Selector ` ,` Buffer ` 等抽象。NIO 中的 N 可以理解为 Non-blocking,不单纯是 New。它支持面向缓冲的 ,基于通道的 I/O 操作方法。 对于高负载、高并发的(网络)应用,应使用 NIO 。
76+ Java 中的 NIO 于 Java 1.4 中引入,对应 ` java.nio ` 包,提供了 ` Channel ` , ` Selector ` ,` Buffer ` 等抽象。NIO 中的 N 可以理解为 Non-blocking,不单纯是 New。它是支持面向缓冲的 ,基于通道的 I/O 操作方法。 对于高负载、高并发的(网络)应用,应使用 NIO 。
7777
7878Java 中的 NIO 可以看作是 ** I/O 多路复用模型** 。也有很多人认为,Java 中的 NIO 属于同步非阻塞 IO 模型。
7979
@@ -93,9 +93,9 @@ Java 中的 NIO 可以看作是 **I/O 多路复用模型**。也有很多人认
9393
9494![ ] ( https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/88ff862764024c3b8567367df11df6ab~tplv-k3u1fbpfcp-watermark.image )
9595
96- IO 多路复用模型中,线程首先发起 select 调用,询问内核数据是否准备就绪,等内核把数据准备好了,用户线程再发起 read 调用。read 调用的过程(数据从内核空间-> 用户空间)还是阻塞的。
96+ IO 多路复用模型中,线程首先发起 select 调用,询问内核数据是否准备就绪,等内核把数据准备好了,用户线程再发起 read 调用。read 调用的过程(数据从内核空间 -> 用户空间)还是阻塞的。
9797
98- > 目前支持 IO 多路复用的系统调用,有 select,epoll 等等。select 系统调用,是目前几乎在所有的操作系统上都有支持
98+ > 目前支持 IO 多路复用的系统调用,有 select,epoll 等等。select 系统调用,目前几乎在所有的操作系统上都有支持。
9999>
100100> - ** select 调用** :内核提供的系统调用,它支持一次查询多个系统调用的可用状态。几乎所有的操作系统都支持。
101101> - ** epoll 调用** :linux 2.6 内核,属于 select 调用的增强版本,优化了 IO 的执行效率。
You can’t perform that action at this time.
0 commit comments