我在以下链接中阅读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/