JUC 辅助类CountDownLatch 计数器

一、场景

执行多个线程,多个线程执行完后,再执行其他内容

二、过程

1、定义CountDownLatch对象,并设置数量

2、对象.countDown()方法,使数量减1

3、对象.await()方法,当数量值为0时,执行后续代码

三、案例

package com.wt.juc;

import java.util.concurrent.CountDownLatch;

/**
 * 六个人全部离开教室后,班长才关门
 */
public class CountDownDemon {
    public static void main(String[] args) {
        // 1.创建对象
        CountDownLatch downLatch = new CountDownLatch(6);
        for (int i = 1; i <= 6; i++) {
            new Thread(()->{
                System.out.println(Thread.currentThread().getName() + "号学生离开"); 
                // 2.数量 减 1
                downLatch.countDown();
            }, String.valueOf(i)).start();
        }
        // 3.数量为0时,执行下列操作
        try {
            downLatch.await();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        Thread.currentThread().setName("班长");
        System.out.println(Thread.currentThread().getName()+"关门");
    }
}

 

posted @ 2025-05-31 18:00  市丸银  阅读(9)  评论(0)    收藏  举报