使用示例

public class Test {
    public static void main(String[] args) throws Exception{
        CyclicBarrier barrier = new CyclicBarrier(3, ()-> {
            System.out.println("3个线程执行完毕,即可召唤圣龙!");
        }); //计时器

        for(int i=1; i<=3; i++) {
           new Thread(() -> {
               System.out.println(Thread.currentThread().getName()+":出来吧,无敌圣龙!");
               try {
                   barrier.await(); //等待
               } catch (Exception e) {
                   e.printStackTrace();
               }
           }, "Thread-"+i).start();

        }
        barrier.reset(); //重置
    }
}

结果:
Thread-1:出来吧,无敌圣龙!
Thread-2:出来吧,无敌圣龙!
Thread-3:出来吧,无敌圣龙!
3个线程执行完毕,即可召唤圣龙