-1
是否有辦法終止等待循環屏障完成的所有線程。 在我的情況下,我有3個線程,如果在A點見面,那麼只能進行,否則該過程應該被殺死。我已經使用循環屏障來檢查是否所有三個線程都在A點會議,如果是的話繼續,但如果即使1個線程失敗,那麼我怎麼能殺死所有線程使用此屏障。 Thet線程正在等待。我不想讓他們現在等待。如何使用循環屏障來終止線程
是否有辦法終止等待循環屏障完成的所有線程。 在我的情況下,我有3個線程,如果在A點見面,那麼只能進行,否則該過程應該被殺死。我已經使用循環屏障來檢查是否所有三個線程都在A點會議,如果是的話繼續,但如果即使1個線程失敗,那麼我怎麼能殺死所有線程使用此屏障。 Thet線程正在等待。我不想讓他們現在等待。如何使用循環屏障來終止線程
當某個線程將在achiving「交匯點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
屏障。