在Java NIO中,是一个对客户端SocketChannel有用的选择器吗?

Arv*_*nem 8 java nio css-selectors

在Java NIO中,很容易理解为什么ServerSocketChannel必须有一个选择器.选择器可以从几个准备好进行I/O操作的客户端通道中进行检查.

但是,在我在网上阅读的一些评论中,选择器机制应用于客户端SocketChannel.我不明白为什么选择器对客户端有用.任何人都可以解释为什么它只在一个服务器的通常情况下使用?

use*_*421 6

除非您连接到数百台服务器,否则很难在客户端看到非阻塞NIO的重点.但是如果你使用非阻塞NIO,你肯定必须使用a Selector,否则你不知道何时读取通道,或者在写入不完整后它再次变为可写.


das*_*ght 5

选择器允许您使用单个线程跨多个通道提供并发通信.当您必须同时与多个服务器通信时,或者在与客户端角色的对等计算机通信时,例如在读取torrent时,它可能在客户端上有用.