CountDownLatch
例子:六位同学都离开,班长才关门
//设置初始值
CountDownLatch c =new CountDownLatch(6);
//-1
c.countDown();
//等待 c没减到0一直等待
c.await();
CyclicBarrier
//设置栅栏数
CyclicBarrier c = new CyclicBarrier(4, () -> {
System.out.println(1);
});
//c.await方法进入等待,当等待的线程数等于设置的栅栏数 执行 上面()->{sout(1)}的代码
c.await();