有没有办法杀死所有等待循环障碍完成的线程。 在我的场景中,我有3个线程,如果在A点遇到,那么只有进行否则该进程应该被杀死。我已经使用循环屏障来检查所有三个线程是否在A点相遇,如果是,则继续,但如果即使1个线程失败,那么我如何使用此屏障杀死所有线程。这些线程正在等待。我不希望他们现在等。
答案 0 :(得分:0)
如果某个线程在实现A"会合点A"时失败,它可以手动打破障碍:
// Fail code
Thread.currentThread.interrupt(); // Set *interrupt* status for current thread
try {
barrier.await(); // Because of interrupt status, this will immediately throw exception and mark barrier as broken.
} catch(InterruptedException e) {}
// Other finalization code if needed.
因此,任何其他线程在尝试在此障碍上使用BrokenBarrierException
时都会遇到.await
异常。