import java.util.concurrent.CountDownLatch; /** * 多线程完成之后,主线程才可以继续;倒计时 * 例子:上自习同学都离开,才可以锁门
CountDownLatch:主要有两个方法,当一个或者多个线程调用await方法时,调用线程会被阻塞,其他线程调用countDown方法会将计数器减1(调用countDown方法的线程不会阻塞), * 当计数器变为0时,因调用await方法被阻塞的线程会被唤醒,继续执行。*/ public class CountDownLatchDemo { private static final int num = 6; CountDownLatch countDownLatch= new CountDownLatch(num); for (int i = 0; i < 6; i++) { final int tem = i; Thread thread = new Thread(new Runnable() { @Override public void run() { System.out.println(Thread.currentThread().getName() +tem +"同学离开教室"); countDownLatch.countDown(); } }); thread.setName(i+""); thread.start(); } countDownLatch.await(); System.out.println(Thread.currentThread().getName() +"教室锁门"); }
多线程完成之后,主线程才可以继续;倒计时
最新推荐文章于 2021-02-23 16:41:43 发布
关键词由CSDN通过智能技术生成