用java循环启动线程主线程等待所有线程执行完毕后继续执行
可以使用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 执行完毕
所有线程执行完毕,主线程继续执行
``
原文地址: http://www.cveoy.top/t/topic/ishI 著作权归作者所有。请勿转载和采集!