public static void main(String[] args) { CyclicBarrier cyclicBarrier = new CyclicBarrier(7,()->{System.out.println("游客集结完毕,出发");}); for (int i = 0; i < 7; i++) { new Thread(()->{ System.out.println(Thread.currentThread().getName()+"游客已到达"); try { cyclicBarrier.await(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (BrokenBarrierException e) { // TODO Auto-generated catch block e.printStackTrace(); } },"第"+String.valueOf(i)+"游客已到达").start(); } } }
执行结果:
第1游客已到达游客已到达 第3游客已到达游客已到达 第0游客已到达游客已到达 第2游客已到达游客已到达 第4游客已到达游客已到达 第5游客已到达游客已到达 第6游客已到达游客已到达 游客集结完毕,出发