`
wx1568908808
  • 浏览: 31440 次
文章分类
社区版块
存档分类
最新评论

CountDownLatch笔记

 
阅读更多

CountDownLatch允许一个或多个线程一直等待,直到其他线程的操作执行完后再执行;CountDownLatch是通过一个计数器来实现的,计数器的初始值为线程的数量。每当一个线程完成了自己的任务后,计数器的值就会减1。当计数器值到达0时,它表示所有的线程已经完成了任务,然后在闭锁上等待的线程就可以恢复执行任务。

public class CountDownLatchDemo {
    static CountDownLatch countDownLatch=new CountDownLatch(3);
    public static class task implements  Runnable{
        @Override
        public void run() {
            try {
                Thread.sleep(1000);//模拟耗时
                System.out.println(Thread.currentThread().getName()+"准备完成");
                countDownLatch.countDown();//表示该任务已完成,计数器减一
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
    public static void main(String[] args) {
        ExecutorService executorService= Executors.newFixedThreadPool(3);
        for(int i=0;i<3;i++){
            executorService.submit(new task());
        }
        try {
            countDownLatch.await();//等待子线程都完成才能执行
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("火箭发射");
    }
}
执行结果如下
pool-1-thread-3准备完成
pool-1-thread-1准备完成
pool-1-thread-2准备完成
火箭发射

解析:模拟火箭发射,必须等三个线程跑完才能执行主线程;

 

转载于:https://my.oschina.net/u/3734816/blog/3060099

分享到:
评论

相关推荐

    韩顺平java从入门到精通笔记完整版

    在并发编程部分,笔记会介绍线程的创建和管理,同步机制如synchronized关键字和Lock接口,以及并发工具类如ExecutorService、Semaphore和CountDownLatch。了解这些内容能帮助你在多核环境下编写高效的程序。 对于...

    李兴华2016年java课堂笔记

    在并发编程领域,笔记将讨论线程的创建与同步,包括线程池、锁机制(synchronized、ReentrantLock等)、并发工具类(如Semaphore、CountDownLatch)以及并发容器(如ConcurrentHashMap)。这些内容在多线程环境下...

    良葛格Java学习笔记(完整版)

    最后,笔记可能还会涉及Java的多线程编程,讲解线程的创建、同步、死锁等问题,以及线程池的使用和并发工具类如Semaphore、CountDownLatch等。 总的来说,《良葛格Java学习笔记(完整版)》是一份覆盖广泛、深度适宜...

    个人学习JUC代码笔记总集

    这个压缩包文件“个人学习JUC代码笔记总集”显然是一个个人的学习资源,记录了对JUC组件的理解和应用实例,特别适合已经有一定Java基础,想要深入学习并发编程的开发者。 JUC的主要目标是简化并发编程,提高多线程...

    Java基础尚硅谷宋红康学习笔记

    10. **Java并发编程**:包括线程池、锁机制(如synchronized、ReentrantLock)、并发容器(如ConcurrentHashMap、CopyOnWriteArrayList)以及并发工具类(如CountDownLatch、CyclicBarrier)。 这些是Java基础知识...

    魔乐科技李兴华主讲JavaSE中重要笔记

    并发工具类如CountDownLatch、CyclicBarrier、Semaphore等,为多线程编程提供了便利。 12. **JNI(Java Native Interface)**:JNI允许Java代码调用C/C++的本地方法,实现Java与其他语言的交互。 通过李兴华老师的...

    Java并发实践-学习笔记

    7. **并发工具类**:`CountDownLatch`, `CyclicBarrier`, `Semaphore`等并发工具类在多线程协作中扮演重要角色,笔记会分析它们的功能和用法。 8. **并发设计模式**:笔记可能还会涉及一些经典的并发设计模式,如...

    Java学习笔记(必看经典).doc

    Thread类和Runnable接口是实现多线程的基础,还可以使用并发工具类如synchronized关键字、Semaphore、CountDownLatch等进行同步控制。 8. **反射机制**:反射是Java的一种高级特性,允许程序在运行时动态地获取类的...

    马士兵多线程训练营笔记

    7. **并发工具类**:CountDownLatch、CyclicBarrier、Semaphore、Exchanger等并发工具的用法及应用场景。 8. **并发编程模式**:单例模式的线程安全实现,双检锁(DCL)、静态内部类等方式。 9. **J.U.C(java....

    关于个人的java笔记整理

    笔记可能会讨论线程的创建(Thread类和Runnable接口)、线程同步(synchronized关键字、wait/notify机制、Lock接口)、线程池(ExecutorService和ThreadPoolExecutor)以及并发工具类(Semaphore、CountDownLatch、...

    java校招学习笔记

    5. **并发编程**:并发工具类(如ConcurrentHashMap、Semaphore、CountDownLatch),以及并发容器(如ConcurrentLinkedQueue)的使用。 6. **分布式相关**:负载均衡、分布式缓存(如Redis)、分布式锁、消息队列...

    多线程与高并发编程笔记、源码等

    此外,资源可能还包含了对并发工具类(如CountDownLatch、CyclicBarrier、Semaphore等)的讲解,这些工具可以帮助开发者更高效地管理和协调多线程的执行。 至于压缩包中的具体文件,虽然无法直接查看文件名称列表...

    B站java狂神说笔记

    笔记涵盖了线程的创建、同步、并发工具类如Semaphore、CountDownLatch,以及线程池的使用。理解这部分内容可以提高程序的并行性和性能。 七、反射与注解 Java反射机制允许程序在运行时动态地获取类的信息并操作类的...

    李兴华Java笔记

    理解线程的生命周期、同步机制(如synchronized关键字、wait/notify、Lock接口)以及并发工具类(如ExecutorService、Semaphore、CountDownLatch),能帮助开发出高并发性能的应用。 8. **反射与注解**:反射允许在...

    哔哩哔哩JUC狂老师笔记.zip

    "哔哩哔哩JUC狂老师笔记.zip"中的笔记内容,显然聚焦于讲解如何有效地利用JUC库来提升并发性能和程序的正确性。下面,我们将深入探讨JUC中的关键知识点。 1. **锁机制**: - **synchronized**:Java内置的关键字,...

    java笔记绝对干货

    - **并发工具**:介绍并发库中的CyclicBarrier、Semaphore、CountDownLatch等工具类。 6. **IO流** - **流的分类**:理解字节流和字符流,以及输入流和输出流的概念。 - **缓冲流**:如何利用BufferedReader和...

    java学习笔记

    5. **多线程**:Java提供了内置的多线程支持,笔记可能会讲解Thread类、Runnable接口,同步机制(synchronized关键字、wait/notify、Lock接口)以及并发工具类如Semaphore、CountDownLatch等。 6. **IO流与NIO**:...

    尚硅谷大厂面试题第二季周阳主讲整理笔记

    【Java基础】 Java语言是面向对象的...总结:本篇笔记涵盖了Java基础、集合框架、并发编程和设计模式等多个方面,是准备Java后端开发面试的重要参考资料。深入理解这些知识点,有助于在面试中展现出扎实的技术功底。

    COREJAVA笔记

    笔记会讲解Thread类的使用,同步机制如synchronized关键字,以及并发工具类如Semaphore和CountDownLatch。 7. **网络编程**:Java的Socket编程可以用来创建客户端和服务器应用程序。笔记可能会包含TCP和UDP协议的...

Global site tag (gtag.js) - Google Analytics