0

次々と進む必要がある4つの別々のプロセスがあります。

第1工程 第2工程 第3工程 第4工程

すべてのプロセスは互いに接続されているため、各プロセスは終了する前にプロセスを次々と実行する必要があります。

各プロセスには、プログラムのデータ入力が大きくなるにつれて変化する独自の可変長があります。

しかし、いくつかのスケッチはこのようになります

プログラムの実行

最初のプロセス - 10 秒間続きます

2 番目のプロセス - 300 件の HTTP get リクエストがあり、最後の 3 分間

3 番目のプロセス - 600 の HTTP get 要求があり、6 分間続きます

4 番目のプロセス - 1 分間続きます

プログラムはJavaで書かれています

答えてくれてありがとう!

4

1 に答える 1

2

あなたが求めているのは並行性の反対であるため、ユースケースのJava APIには並行性サポートはありません。特定の順序で実行する必要がある、相互に依存する 4 つの操作のセットがあります。このケースを正しく処理するには、1 つのスレッドだけが必要であり、おそらく 1 つだけ使用する必要があります。

操作の複雑さに基づいて、各操作を独自のメソッドまたはクラスに配置することは合理的で賢明です。

複数のスレッドを使用する必要がある場合は、メイン スレッドで実行可能オブジェクトのリストを維持する必要があります。リストを反復処理します。リストから最初のランナブルをポップし、そのランナブル用の新しいスレッドを作成し、スレッドを開始してから、スレッドで join() を呼び出します。ランナブルが完了するまで、メインスレッドはブロックされます。ループにより、すべてのランナブルが順番に表示されます。繰り返しますが、これを行う正当な理由はありません。悪い理由があるかもしれないし、ないかもしれない。

于 2013-09-13T19:20:39.117 に答える