package com.lyon.juc; import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.CyclicBarrier; //累加计数器 public class CyclicBarrierDemo { public static void main(String[] args) { /** * 集齐五福 */ CyclicBarrier cyclicBarrier = new CyclicBarrier(5,()->{ System.out.println("集齐五福成功!"); }); for (int i = 1; i <= 5; i++) { //for (int i = 1; i <= 4; i++) {//没有+到5,会一直等待 final int temp = i; new Thread(()->{ System.out.println(Thread.currentThread().getName()+"集齐"+temp+"张五福"); try { cyclicBarrier.await();//等待 } catch (InterruptedException e) { e.printStackTrace(); } catch (BrokenBarrierException e) { e.printStackTrace(); } }).start(); } } }