9.39. CyclicBarrier 和 CountDownLatch 的区别
时间:12-14来源:作者:点击数:
两个看上去有点像的类,都在 java.util.concurrent 下,都可以用来表示代码运行到某个点上,二者的区别在于:
- CyclicBarrier 的某个线程运行到某个点上之后,该线程即停止运行,直到所有的线程都到达了这个点,所有线程才重新运行;CountDownLatch 则不是,某线程运行到某个点上之后,只是给某个数值-1而已,该线程继续运行。
- CyclicBarrier 只能唤起一个任务,CountDownLatch 可以唤起多个任务。
- CyclicBarrier 可重用,CountDownLatch 不可重用,计数值为 0 该 CountDownLatch 就不可再用了。