方法二:Thread的join()方法
===================
等待所有的子线程执行完毕,主线程在执行,thread.join()把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。
方法三:等待多线程完成的CountDownLatch
===========================
注意:countDownLatch不可能重新初始化或者修改CountDownLatch对象内部计数器的值,一个线程调用countdown方法happen-before另外一个线程调用await方法
方法四:同步屏障CyclicBarrier
======================
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2ktYmV0YS8xN 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 TE3MTA1LzIwMjAwMS8xNTE3MTA1LTIwMjAwMTA4MTYzOTMwNjg2LTEyNDc0NzQwMzkucG5n?x-oss-process=image/format,png)
方法五:线程池
========