/*
原理:
* countDownLach主要有两个方法,当一个或多个线程调用await方法时,这些线程会阻塞
* 其它线程调用countDown方法会将计数器减一(调用countDown方法的线程不会阻塞),
* 当计数器的值变为0时,因为await方法阻塞的线程会被唤醒,继续执行。
* */
public static void main(String[] args) {
CountDownLatch countDownLatch=new CountDownLatch(6);
for(int i=1;i<=6;i++){
new Thread(()->{
System.out.println( Thread.currentThread().getName()+" 离开教室");
countDownLatch.countDown();
},String.valueOf(i)).start();
}
try {
countDownLatch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+" 关门");
}