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
分享到:
相关推荐
在并发编程部分,笔记会介绍线程的创建和管理,同步机制如synchronized关键字和Lock接口,以及并发工具类如ExecutorService、Semaphore和CountDownLatch。了解这些内容能帮助你在多核环境下编写高效的程序。 对于...
在并发编程领域,笔记将讨论线程的创建与同步,包括线程池、锁机制(synchronized、ReentrantLock等)、并发工具类(如Semaphore、CountDownLatch)以及并发容器(如ConcurrentHashMap)。这些内容在多线程环境下...
最后,笔记可能还会涉及Java的多线程编程,讲解线程的创建、同步、死锁等问题,以及线程池的使用和并发工具类如Semaphore、CountDownLatch等。 总的来说,《良葛格Java学习笔记(完整版)》是一份覆盖广泛、深度适宜...
这个压缩包文件“个人学习JUC代码笔记总集”显然是一个个人的学习资源,记录了对JUC组件的理解和应用实例,特别适合已经有一定Java基础,想要深入学习并发编程的开发者。 JUC的主要目标是简化并发编程,提高多线程...
10. **Java并发编程**:包括线程池、锁机制(如synchronized、ReentrantLock)、并发容器(如ConcurrentHashMap、CopyOnWriteArrayList)以及并发工具类(如CountDownLatch、CyclicBarrier)。 这些是Java基础知识...
并发工具类如CountDownLatch、CyclicBarrier、Semaphore等,为多线程编程提供了便利。 12. **JNI(Java Native Interface)**:JNI允许Java代码调用C/C++的本地方法,实现Java与其他语言的交互。 通过李兴华老师的...
7. **并发工具类**:`CountDownLatch`, `CyclicBarrier`, `Semaphore`等并发工具类在多线程协作中扮演重要角色,笔记会分析它们的功能和用法。 8. **并发设计模式**:笔记可能还会涉及一些经典的并发设计模式,如...
Thread类和Runnable接口是实现多线程的基础,还可以使用并发工具类如synchronized关键字、Semaphore、CountDownLatch等进行同步控制。 8. **反射机制**:反射是Java的一种高级特性,允许程序在运行时动态地获取类的...
7. **并发工具类**:CountDownLatch、CyclicBarrier、Semaphore、Exchanger等并发工具的用法及应用场景。 8. **并发编程模式**:单例模式的线程安全实现,双检锁(DCL)、静态内部类等方式。 9. **J.U.C(java....
笔记可能会讨论线程的创建(Thread类和Runnable接口)、线程同步(synchronized关键字、wait/notify机制、Lock接口)、线程池(ExecutorService和ThreadPoolExecutor)以及并发工具类(Semaphore、CountDownLatch、...
5. **并发编程**:并发工具类(如ConcurrentHashMap、Semaphore、CountDownLatch),以及并发容器(如ConcurrentLinkedQueue)的使用。 6. **分布式相关**:负载均衡、分布式缓存(如Redis)、分布式锁、消息队列...
此外,资源可能还包含了对并发工具类(如CountDownLatch、CyclicBarrier、Semaphore等)的讲解,这些工具可以帮助开发者更高效地管理和协调多线程的执行。 至于压缩包中的具体文件,虽然无法直接查看文件名称列表...
笔记涵盖了线程的创建、同步、并发工具类如Semaphore、CountDownLatch,以及线程池的使用。理解这部分内容可以提高程序的并行性和性能。 七、反射与注解 Java反射机制允许程序在运行时动态地获取类的信息并操作类的...
理解线程的生命周期、同步机制(如synchronized关键字、wait/notify、Lock接口)以及并发工具类(如ExecutorService、Semaphore、CountDownLatch),能帮助开发出高并发性能的应用。 8. **反射与注解**:反射允许在...
"哔哩哔哩JUC狂老师笔记.zip"中的笔记内容,显然聚焦于讲解如何有效地利用JUC库来提升并发性能和程序的正确性。下面,我们将深入探讨JUC中的关键知识点。 1. **锁机制**: - **synchronized**:Java内置的关键字,...
- **并发工具**:介绍并发库中的CyclicBarrier、Semaphore、CountDownLatch等工具类。 6. **IO流** - **流的分类**:理解字节流和字符流,以及输入流和输出流的概念。 - **缓冲流**:如何利用BufferedReader和...
5. **多线程**:Java提供了内置的多线程支持,笔记可能会讲解Thread类、Runnable接口,同步机制(synchronized关键字、wait/notify、Lock接口)以及并发工具类如Semaphore、CountDownLatch等。 6. **IO流与NIO**:...
【Java基础】 Java语言是面向对象的...总结:本篇笔记涵盖了Java基础、集合框架、并发编程和设计模式等多个方面,是准备Java后端开发面试的重要参考资料。深入理解这些知识点,有助于在面试中展现出扎实的技术功底。
笔记会讲解Thread类的使用,同步机制如synchronized关键字,以及并发工具类如Semaphore和CountDownLatch。 7. **网络编程**:Java的Socket编程可以用来创建客户端和服务器应用程序。笔记可能会包含TCP和UDP协议的...