1. CyclicBarrier
2. CountDownLatch
3. awaitTermination (实用)
3.1 ThreadPoolExecutor 的
shutdown() + awaitTermination()
阻塞主线程等待指定的时间
3.2 ThreadPoolExecutor 的
shutdown() + awaitTermination()+ 下图自定义拒绝策略
则为 阻塞主线程等待指定的时间(该时间为线程池最大运行线程数所需时间)
4.invokeAll (实用)
ThreadPoolExecutor的invokeall()方法
阻塞主线程等待所有任务完成
(本质是利用 Future.get() 实现,相当于submit 的改造版 )