阿里Java规范
阿里Java规范第六节第10点说明如下
CountDownLatch
在Java中,CountDownLatch
是一个同步辅助类,它允许一个或多个线程等待直到在其他线程中执行的一组操作完成。CountDownLatch
在初始化时设置一个计数器,这个计数器代表需要等待完成的操作的数量。每当一个操作完成时,计数器就会减一;当计数器减到零时,表示所有操作都已完成,此时所有等待的线程都会被释放并继续执行。
代码演示
public static void main(String[] args) throws InterruptedException {
// 1. 创建任务队列:这里使用有界队列
BlockingQueue<Runnable> workQueue = new ArrayBlockingQueue<>(10);
// 2. 创建 ThreadPoolExecutor
// 参数依次为:核心线程数、最大线程数、非核心线程空闲存活时间、时间单位、任务队列、线程工厂、拒绝策略
ThreadPoolExecutor executor = new ThreadPoolExecutor(
2, // 核心线程数
5, // 最大线程数
1L, // 非核心线程空闲存活时间
TimeUnit.SECONDS, // 时间单位
workQueue, // 任务队列
Executors.defaultThrea