我正在阅读java.util.concurrent API,发现
CountDownLatch
CyclicBarrier
对我来说,两者似乎是平等的,但我相信还有更多。
例如,在CoundownLatch, the countdown value could not be reset, that can happen in the case of CyclicBarrier.
CoundownLatch, the countdown value could not be reset, that can happen in the case of CyclicBarrier
两者之间还有其他区别吗?有人想 在哪里重置倒计时的值?use cases
use cases
一个主要区别是CyclicBarrier接受一个(可选的)可运行任务,一旦满足通用屏障条件,该任务就会运行。
它还允许您获取在屏障处等待的客户端数量以及触发屏障所需的数量。一旦触发,屏障就会重置并且可以再次使用。
对于简单的用例 - 服务启动等...... CountdownLatch 很好。CyclicBarrier 对于更复杂的协调任务很有用。这种事情的一个例子是并行计算——计算中涉及多个子任务——有点像MapReduce。