首页  >  文章  >  Java  >  如何保证主线程等待多线程进程完成?

如何保证主线程等待多线程进程完成?

Barbara Streisand
Barbara Streisand原创
2024-10-31 02:31:29726浏览

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

等待多线程进程完成

在此代码片段中,您创建了多个线程,每个线程在自己的线程中运行一个任务的执行。为了确保主线程等待所有子线程完成执行后再继续,可以实现以下方法:

  1. 将线程存储在数组中:创建一个数组存储所有创建的线程。这可确保有组织地跟踪其完成状态。
  2. 启动所有线程:循环遍历线程数组并使用 start() 方法启动每个线程。
  3. 在循环中加入线程: 启动所有线程后,添加一个循环以加入数组中的每个线程。 join() 方法会阻塞调用线程(在本例中为主线程),直到目标线程完成执行。
<code class="java">// ... (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 < 1000; n++) {
            threads[n] = new Thread(new DoSomethingInAThread());
            threads[n].start();
        }
        
        // Wait for all threads to complete
        for (int i = 0; i < threads.length; i++) {
            threads[i].join();
        }
    }

    public void run() {
        // ... (code as before)
    }
}</code>

通过使用 join() 方法,主线程会阻塞直到所有子线程完成执行,确保您的程序等待所有任务完成,然后再继续执行循环后面的代码。这种方法为您提供控制并确保资源被释放并且程序正确终止。

以上是如何保证主线程等待多线程进程完成?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn