CountDownLatch和CyclicBarrier区别:
想象一个场景,宴会上桌吃饭。假设一个桌子只能且必须坐10个人
- CyclicBarrier:只有等10个人都上桌了,才能开吃。(人数由0到10)
- CountDownLatch:吃完撤桌,只有等10个人都离桌才能撤桌。(人数由10到0)
当然也可以反向思维:
- CountDownLatch:空余座位数由10递减变为0时,开吃。(空座位数由10到0)
- CyclicBarrier:空座位数由0递增至10时,撤桌。(空座位数由0到10)
此外,CyclicBarrier如其名,可以循环使用;而CountDownLatch只能使用一次。