「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > メインスレッドが複数のスレッドプロセスの完了を待機するようにするにはどうすればよいですか?

メインスレッドが複数のスレッドプロセスの完了を待機するようにするにはどうすればよいですか?

2024 年 11 月 11 日に公開
ブラウズ:510

How to Ensure the Main Thread Waits for Completion of Multiple Threaded Processes?

複数のスレッド プロセスの完了を待機しています

このコード スニペットでは、複数のスレッドが作成され、それぞれが独自のスレッド内でタスクを実行しています。実行の。メインスレッドがすべてのサブスレッドの実行が完了するまで待ってから続行するようにするには、次のアプローチを実装できます。

  1. スレッドを配列に格納する:作成されたすべてのスレッドを格納する配列。これにより、完了ステータスの体系的な追跡が保証されます。
  2. すべてのスレッドの開始: スレッド配列をループし、start() メソッドを使用して各スレッドを開始します。
  3. ループ内のスレッドの結合: すべてのスレッドを開始した後、配列内の各スレッドを結合するループを追加します。 join() メソッドは、ターゲット スレッドが実行を完了するまで、呼び出しスレッド (この場合はメイン スレッド) をブロックします。
// ... (code as before)

public class DoSomethingInAThread implements Runnable {

    public static void main(String[] args) {
        Thread[] threads = new Thread[1000];  // Assume 1000 threads for example
        
        // Start all threads
        for (int n = 0; n 

join() メソッドを使用すると、すべてのサブスレッドの実行が完了するまでメイン スレッドがブロックされ、プログラムはすべてのタスクが完了するのを待ってからループに続くコードに進むようになります。このアプローチにより、制御が可能になり、リソースが解放され、プログラムが正しく終了することが保証されます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3