一个问题,如果开启10个线程,但是需要这10个线程都执行完成后,再交由主线程统一输入,如何实现? 下面我贴出代码:
int count = 10;
List<Thread> workers = new ArrayList<>();
for(int i = 0; i < count; i++) {
Thread worker = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("执行子线程");
}
});
worker.start();
workers.add(worker);
}
for(int i = 0; i < count; i++) {
workers.get(i).join();
}
System.out.println("执行主线程");
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
所有线程start之后,通过join方法等待线程执行完成,当所有线程执行完成后再执行后面的主线程方法。