在 Java NIO 中,很容易理解为什么 ServerSocketChannel 必须有一个选择器。选择器可以从多个客户端 channel 中检查是否准备好进行 I/O 操作。
但是,在网上看到的一些评论中,selector机制是应用于客户端SocketChannel的。我不明白为什么选择器对客户有用。谁能解释为什么它在只有一台服务器的通常情况下有用?
最佳答案
除非您连接到数百台服务器,否则很难在客户端中看到非阻塞 NIO 的意义。但是如果你使用非阻塞 NIO,你肯定必须使用 Selector
,否则你无法知道什么时候读取 channel ,或者在不完整的写入之后什么时候它再次变得可写。
关于java - 在 Java NIO 中,选择器对客户端 SocketChannel 有用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12338204/