首先要知道Thread中,join()方法的作用是调用线程等待该线程完成后,才能继续用下运行。
那么既然这样,使用join函数让子线程执行完就OK了
例子:
import java.util.*;
public class Main {
public static void main(String[] args) throws InterruptedException{
int sum = 5;
List<Thread> list = new ArrayList<>();
for(int i = 0; i < sum; i++){
Thread work = new Thread(new Runnable(){
@Override
public void run(){
System.out.println("子线程执行");
}
});
work.start();
list.add(work);
}
for(int i = 0; i < sum; i++){
list.get(i).join();
}
System.out.println("主线程执行");
}
}
运行结果: