循环栅栏
CyclicBarrier 和CountDownLatch整体的作用差不多,都是协调线程在某个点触发以后的任务,但是CountDownLatch 没有循环的功能。比如:部队里面士兵需要区演练,首先是集合再做演练任务。看看下面的例子
1 | public class CyclicBarrierDemo { |
- 打印结果
集合队伍!
士兵0报道!
士兵1报道!
士兵2报道!
士兵3报道!
士兵4报道!
士兵5报道!
士兵6报道!
士兵7报道!
士兵8报道!
士兵9报道!
司令:[士兵)10个,集合完毕!]
士兵9任务完成
士兵7任务完成
士兵6任务完成
士兵0任务完成
士兵8任务完成
士兵2任务完成
士兵4任务完成
士兵3任务完成
士兵1任务完成
士兵5任务完成
司令:[士兵)10个,任务完成!]