我在以下链接中阅读CyclicBarrier http://java-latte.blogspot.in/2013/10/cyclicbarrier-in-java-concurrency.html

在示例1中,CyclicRaceDemo.java主要方法CyclicBarrier被重用,而无需调用 reset 方法。

我运行了该示例,它运行良好。因此,我想知道reset方法的用途是什么。什么时候应该叫它?还是我们需要调用它?

最佳答案

CyclicBarrier是循环的,因为它可以重用而无需重置。从Javadoc



因此,在正常使用中,一旦收集了所有线程并且打破了障碍,它就会重置并可以再次使用。

Javadoc for reset()



因此,reset导致任何当前正在等待的线程抛出BrokenBarrierException并立即唤醒。当您想“突破”障碍时,可以使用reset

还要注意警告-一旦线程被强制唤醒,再次同步它们是棘手的。

TL; DR :在正常情况下,您永远不需要使用reset()

关于java - 何时在Java多线程中重置CyclicBarrier,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24104642/

10-10 07:28