1

Java を使用した非同期プログラミングの例はどこにありますか? 私は、応答性 (定期的にハングしてユーザー入力への応答を停止するアプリケーションや、クライアントの要求にタイムリーに応答しないサーバー アプリケーションを防ぐ) とスケーラビリティを示すアプリケーションを構築するための非同期プログラミングのパターンを見つけることに興味があります。

特に、I/O 操作 (ファイルの読み取り/書き込み、Web 要求、データベース クエリなど) を実行し、Web ページのショッピングの提案者のように多くの CPU 処理を行うサンプルを見ると役立ちます。

アプリケーションの応答性が予測できない場合を判断するのに役立つ Java ライブラリはどれですか。アプリケーションのスレッドが I/O 要求を実行するため、アプリケーションは基本的にスレッドの処理の制御を I/O デバイス (ハード ドライブ、ネットワークなど)

4

5 に答える 5

2

GUI では、スレッドを使用してバックグラウンド タスクを実行できます。

Java は、新しい I/O API (NIO) でノンブロッキング I/O をサポートします。

質問がよりアーキテクチャ指向である場合は、この本で非同期パターンの詳細な説明が提供されます:エンタープライズ アプリケーション アーキテクチャのパターン ( Martin Fowler 著)。

于 2010-02-20T05:26:45.373 に答える
0

Web環境では、新しいj2ee6非同期機能を利用できます。http://docs.oracle.com/javaee/6/tutorial/doc/gkkqg.htmlをご覧ください

于 2012-07-27T22:39:46.340 に答える
0

アプリケーションの応答性が予測できない場合を判断するのに役立つ Java ライブラリはどれですか。アプリケーションのスレッドが I/O 要求を実行するため、アプリケーションは基本的にスレッドの処理の制御を I/O デバイス (ハード ドライブ、ネットワークなど)

私の理解が正しければ、他のスレッドを調べて I/O 呼び出しでブロックされているかどうかを判断するライブラリを求めているということですね。

これは標準の JVM では不可能だと思います。さらに、これが必ずしも「応答性」を保証するのに十分であるとは思いません。

于 2010-02-20T06:42:27.060 に答える
0

ある種の I/O 操作 (たとえば、ブロックできる InputStream での読み取り) を使用している場合は、それをスレッドに配置します。最も簡単な解決策は、特定の量のスレッドで join を使用することです。

MyThread myThread = new MyThread(); 
myThread.start();
myThread.join(10000);

この結合は、最大 10 秒間待機します。その後、スレッドを無視することができます... Decorator パターンを使用することもできます。詳しくはこちらをご覧ください

于 2010-02-20T12:12:24.037 に答える