大家都知道java IO是阻塞的,java NIO是非阻塞的。在 IO 中,您必须使用每个客户端模式的线程,在 NIO 中,您可以为所有客户端使用一个线程。
现在我的问题如下:是否可以仅使用 Java IO api进行非阻塞设计。(不是蔚来)
我正在考虑这样的模式(显然非常简化);
List<Socket> li;
for (Socket s : li) {
InputStream in = s.getInputStream();
byte[] data = in.available();
in.read(data);
// processData(data); (decoding packets, encoding outgoing packets
}
另请注意,客户端将始终准备好读取数据。
您对此有何看法?这是否适用于至少应该拥有几百个客户端而没有重大性能问题的服务器?