Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java countdownlatch

作者:你没有爱过我   发布日期:2025-04-19   浏览:92

import java.util.concurrent.CountDownLatch;

public class CountdownLatchExample {

    public static void main(String[] args) throws InterruptedException {
        // 创建一个CountDownLatch,参数为3,表示需要等待3个线程完成
        CountDownLatch latch = new CountDownLatch(3);

        // 创建并启动三个线程
        for (int i = 0; i < 3; i++) {
            new Thread(new Worker(latch)).start();
        }

        // 主线程等待所有子线程完成
        System.out.println("主线程等待所有子线程完成...");
        latch.await(); // 阻塞直到计数器归零

        System.out.println("所有子线程已完成,主线程继续执行...");
    }

    // 子线程任务类
    static class Worker implements Runnable {
        private final CountDownLatch latch;

        public Worker(CountDownLatch latch) {
            this.latch = latch;
        }

        @Override
        public void run() {
            try {
                // 模拟子线程的工作
                System.out.println(Thread.currentThread().getName() + " 正在工作...");
                Thread.sleep(1000); // 模拟耗时操作
                System.out.println(Thread.currentThread().getName() + " 工作完成");
            } catch (InterruptedException e) {
                e.printStackTrace();
            } finally {
                // 子线程完成工作后,调用countDown方法减少计数器
                latch.countDown();
            }
        }
    }
}

解释说明:

  • CountDownLatch 是一个同步辅助类,它允许一个或多个线程一直等待,直到其他线程执行完一组操作。
  • 在上面的代码中,我们创建了一个 CountDownLatch 对象,初始值为3,表示需要等待3个线程完成它们的任务。
  • 我们启动了3个子线程,每个子线程模拟了一些工作(通过 Thread.sleep 模拟耗时操作),并在完成工作后调用 latch.countDown() 方法来减少计数器。
  • 主线程调用 latch.await() 方法,阻塞等待直到计数器归零(即所有子线程完成工作)。
  • 当所有子线程都调用了 countDown() 方法后,await() 方法返回,主线程继续执行。

上一篇:java encodeuricomponent

下一篇:java 生成uuid

大家都在看

java连接数据库的代码

ubuntu 卸载java

java sort用法

java collections.sort

java file类的方法

java 判断

java时间数据类型

java 时间加一天

java demo

java 截取

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站