CyclicBarrier 計數器:增加到一定數值,才可以呼叫某執行緒
阿新 • • 發佈:2021-02-06
技術標籤:塊程式碼
import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.CyclicBarrier; /** * 計數器:增加到一定數值,才可以呼叫某執行緒 * 集齊7顆龍珠。才可召喚神龍 * 人到齊了才能開會 先到的先等。 */ public class CyclicBarrierDemo { public static void main(String[] args) { final CyclicBarrier cyclicBarrier = new CyclicBarrier(7, new Runnable() { @Override public void run() { System.out.println("龍珠集齊,召喚神龍"); } }); for (int i = 1; i < 8; i++) { final int temp = i; Thread thread = new Thread(new Runnable() { @Override public void run() { System.out.println(Thread.currentThread().getName() +"執行緒收集到" + temp +"號龍珠"); try { cyclicBarrier.await(); } catch (InterruptedException e) { e.printStackTrace(); } catch (BrokenBarrierException e) { e.printStackTrace(); } finally { } } }); thread.setName(i+""); thread.start(); } } }