CyclicBarrier allows a number of threads to wait on each other, whereas CountDownLatch allows one or more threads to wait for a number of tasks to complete
CountDownLatch: 类似于一个计数器。单个线程可重入。调用awit()方法阻塞,等待计数器归0。由此可用于实现一个人在等待一堆人做完某件事之后做另外的事情。
CyclicBarrier: 类似于一个栅栏。每个人都必须到达这个地方,才方可做下一个事儿。若其中任何一个人没做完,另外一个也会阻塞在这个地方。
diff
CountDownLatch 多线程场景下调用countdown即为减1,不可重用。没有set方法。
CyclicBarrier 调用awit,线程并不退出,等待其他所有线程调用awit,才可冲破栅栏。可重用。