CyclicBarrier
和CountDownLatch
与join
在Java中有什么区别?CyclicBarrier
和CountDownLatch
的优点是什么?在我看来,只需要使用join
就可以等待一个线程完成其执行。
CyclicBarrier
和CountDownLatch
与join
在Java中有什么区别?CyclicBarrier
和CountDownLatch
的优点是什么?在我看来,只需要使用join
就可以等待一个线程完成其执行。
http://javarevisited.blogspot.sg/2012/07/countdownlatch-example-in-java.html http://javarevisited.blogspot.ru/2012/07/cyclicbarrier-example-java-5-concurrency-tutorial.html
join()
等待一个线程完成。 CountDownLatch.await()
允许 N 个线程等待,直到倒计时结束。它可用于确保 N 个线程同时开始执行某些操作(例如开始比赛),或在 N 个线程达到某个特定点后唤醒另一个线程(例如比赛结束)。
javadoc 给出了使用 CountDownLatch 的具体示例。请阅读它。
CyclicBarrier 类似于 CountDownLatch,但允许定期协调点。