有以下几种方法可以实现主线程等待子线程执行完毕后再执行:
- 使用 join() 方法:在主线程中调用子线程的 join() 方法,主线程会等待子线程执行完毕后再继续执行。
- 使用 CountDownLatch 类:在主线程中创建 CountDownLatch 对象,设置计数器初始值为子线程个数,子线程执行完毕后调用 CountDownLatch 的 countDown() 方法,主线程调用 await() 方法等待计数器归零后再继续执行。
- 使用线程池:使用线程池执行子线程任务,主线程调用线程池的 shutdown() 方法等待所有任务执行完毕后再继续执行。
- 使用 Lock 和 Condition 类:在主线程中创建 Lock 和 Condition 对象,子线程执行完毕后调用 Condition 的 signal() 方法,主线程调用 Condition 的 await() 方法等待信号后再继续执行。
需要注意的是,主线程等待子线程执行完毕会阻塞主线程,可能会对程序的性能产生影响,因此在实际应用中需要根据具体情况选择合适的方法。