誰もがJavaIOがブロッキングであり、javaNIOが非ブロッキングであることを知っています。IOでは、クライアントパターンごとにスレッドを使用する必要があります。NIOでは、すべてのクライアントに1つのスレッドを使用できます。
ここで私の質問は次のとおりです。JavaIOAPIのみを使用してノンブロッキングデザインを作成することは可能ですか。(NIOではありません)
私はこのようなパターンについて考えていました(明らかに非常に単純化されています)。
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
}
また、クライアントは常にデータを読み取る準備ができていることに注意してください。
これについてどう思いますか?これは、パフォーマンスに大きな問題がなく、少なくとも数百のクライアントを保持する必要があるサーバーに適していますか?