可以使用Thread.join()方法来等待线程执行完毕。

下面是一个示例代码:

public class MainThread {
    public static void main(String[] args) {
        int numThreads = 5;
        Thread[] threads = new Thread[numThreads];

        // 创建并启动线程
        for (int i = 0; i < numThreads; i++) {
            threads[i] = new Thread(new WorkerThread(i));
            threads[i].start();
        }

        // 等待所有线程执行完毕
        for (int i = 0; i < numThreads; i++) {
            try {
                threads[i].join();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }

        // 所有线程执行完毕后继续执行主线程
        System.out.println("所有线程执行完毕,主线程继续执行");
    }
}

class WorkerThread implements Runnable {
    private int id;

    public WorkerThread(int id) {
        this.id = id;
    }

    @Override
    public void run() {
        System.out.println("线程 " + id + " 正在执行");
        try {
            // 模拟线程执行耗时
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("线程 " + id + " 执行完毕");
    }
}

在上述代码中,首先创建了5个线程并启动,然后使用join()方法等待每个线程执行完毕。最后输出"所有线程执行完毕,主线程继续执行"。

运行结果类似于以下内容:

线程 0 正在执行
线程 1 正在执行
线程 2 正在执行
线程 3 正在执行
线程 4 正在执行
线程 0 执行完毕
线程 1 执行完毕
线程 2 执行完毕
线程 3 执行完毕
线程 4 执行完毕
所有线程执行完毕,主线程继续执行
``
用java循环启动线程主线程等待所有线程执行完毕后继续执行

原文地址: http://www.cveoy.top/t/topic/ishI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录