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() +"教室锁门"); }
多线程完成之后,主线程才可以继续;倒计时
最新推荐文章于 2025-09-22 19:00:58 发布
这篇博客通过实例展示了Java并发工具类CountDownLatch的使用,它用于在所有线程完成任务之前阻止主线程的执行。文章解释了CountDownLatch如何通过countDown()和await()方法实现线程间的同步,模拟了上自习同学离开后教室才能锁门的情景。

4923

被折叠的 条评论
为什么被折叠?



