0
点赞
收藏
分享

微信扫一扫

CountDownLatch

亿奇学 2021-10-15 阅读 30
技术分享

CountDownLatch是一个计数器闭锁,让一些线程阻塞直到另一些线程完成一系列操作后才被唤醒。

CountDownLatch主要有两个方法,当一个或多个线程调动await方法时,调用线程会被阻塞。其他线程调用countDown方法会将计数器减1,注意此处调用countDown方法的线程不会阻塞,当计数器的值变为0时,因调用await方法被阻塞的线程会被唤醒,继续执行。


代码示例

public static void main(String[] args) throws Exception {
    CountDownLatch countDownLatch = new CountDownLatch(6);
    for (int i = 0; i < 6; i++) {
        new Thread(() -> {
            System.out.println(Thread.currentThread().getName() + " 同学离开教室");
            countDownLatch.countDown();
        }).start();
    }
    countDownLatch.await();
    System.out.println(Thread.currentThread().getName() + " 老师关教室门");
}

执行结果

Thread-1 同学离开教室
Thread-5 同学离开教室
Thread-2 同学离开教室
Thread-0 同学离开教室
Thread-4 同学离开教室
Thread-3 同学离开教室
main 老师关教室门
举报

相关推荐

0 条评论