CyclicBarrier(循环栅栏)
CyclicBarrier
public class CyclicBarrierDemo { public static void main(String[] args) { CyclicBarrier cyclicBarrier = new CyclicBarrier(7,()->{ System.out.println("集齐7颗龙珠召唤神龙"); }); for (int i =1; i <=7 ; i++) { new Thread(()->{ try { System.out.println(Thread.currentThread().getName() +"\t 星龙珠被收集"); cyclicBarrier.await(); System.out.println("阻塞释放"); } catch (InterruptedException e) { e.printStackTrace(); } catch (BrokenBarrierException e) { e.printStackTrace(); } },String.valueOf(i)).start(); } } }
结果
2 星龙珠被收集 5 星龙珠被收集 4 星龙珠被收集 3 星龙珠被收集 1 星龙珠被收集 7 星龙珠被收集 6 星龙珠被收集 集齐7颗龙珠召唤神龙 阻塞释放 阻塞释放 阻塞释放 阻塞释放 阻塞释放 阻塞释放 阻塞释放

浙公网安备 33010602011771号