CountDownLatch :
一个线程
(或者多个), 等待另外
N个线程
完成
某个事情
之后才能执行。 CyclicBarrier :
N个线程
相互等待,任何一个线程完成之前,所有的线程都必须等待。
这样应该就清楚一点了,对于CountDownLatch来说,重点是那个 “一个线程” , 是它在等待, 而另外那N的线程在把 “某个事情” 做完之后可以继续等待,可以终止。而对于CyclicBarrier来说,重点是那 N个线程 ,他们之间任何一个没有完成,所有的线程都必须等待。
这样应该就清楚一点了,对于CountDownLatch来说,重点是那个 “一个线程” , 是它在等待, 而另外那N的线程在把 “某个事情” 做完之后可以继续等待,可以终止。而对于CyclicBarrier来说,重点是那 N个线程 ,他们之间任何一个没有完成,所有的线程都必须等待。