4

1 つのスレッドで 256 のネットワーク接続を開いた Java でプログラムを作成しています。ソケットにデータがあるときはいつでも、それを読み取って同じように処理する必要があります。現在、私は次のアプローチを使用しています:

while true
do
   iterate over all network connections
   do
         if non-blocking read on socket says there is data
         then
               read data
               process it
         endif
   done
   sleep for 10 milli-seconds
done

Javaで同じことを行うより良い方法はありますか?? C/C++ に poll メソッドがあることは知っています。しかし、グーグルで調べた後、Javaのポーリングについて具体的なアイデアが得られませんでした。誰かがこれを説明できますか??

4

2 に答える 2

1

java.nioパッケージは、あなたがやりたいことにぴったりです。非同期 IO を実行する方法を提供します。

于 2013-03-19T07:22:59.797 に答える
1

http://netty.io/を見てください(これは、Java 上でネットワーク アプリケーションを構築するためのノンブロッキング フレームワークです)。 https://community.jboss.org/wiki/NettyExampleOfPingPongUsingObject - netty の「こんにちは世界」。

于 2013-03-19T07:30:52.647 に答える