`

线程并发工具--CountDownLatch

 
阅读更多

倒计时器,某个线程可以等待这个倒计时指向0的时候开始执行:

final CountDownLatch cdl = new CountDownLatch(10);
		for(int i = 0;i<10;i++){
			final int index = i;
			new Thread(new Runnable(){
				@Override
				public void run() {
					try {
						Thread.sleep(new Random().nextInt(5000));
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
					System.out.println("thread " + index + " execute complate!");
					cdl.countDown();
				}
			}).start();
		}
		System.out.println("main thread is awaiting...");
		try {
			cdl.await();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		System.out.println("all thread execute complate.");

主线程启动10个线程开始来减少倒计时数量,等到减到0时主线程继续执行,结果如下:

main thread is awaiting...
thread 0 execute complate!
thread 8 execute complate!
thread 2 execute complate!
thread 4 execute complate!
thread 9 execute complate!
thread 7 execute complate!
thread 5 execute complate!
thread 1 execute complate!
thread 6 execute complate!
thread 3 execute complate!
all thread execute complate.


分享到:
评论

相关推荐

    多线程精品资源--高并发-高可靠-高性能three-high-import导入系统-高并发多线程进阶.zip

    5. **并发工具类**:Java中的Concurrent包,包括CountDownLatch、CyclicBarrier、Semaphore等。 6. **性能调优**:监控工具的使用,如JProfiler、VisualVM等,以及性能瓶颈的识别和优化策略。 7. **分布式系统中的...

    高并发多线程处理demo-java.rar

    10. **线程间的通信**:Java提供了`wait()`, `notify()`, `notifyAll()`方法,以及`java.util.concurrent`包中的工具类,如`CountDownLatch`, `CyclicBarrier`, `Semaphore`等,用于线程间的同步和通信。 以上知识...

    Java 模拟线程并发

    总之,Java模拟线程并发是一个广泛且深入的话题,涵盖了线程的创建、同步、管理和高级并发工具的使用。理解和熟练应用这些知识,能够帮助开发者编写出高效、安全的多线程程序。在实际开发中,应根据具体需求选择合适...

    Java多线程实战精讲-带你一次搞明白Java多线程高并发

    9. **并发工具类** - **CountDownLatch**:用于计数,当计数值为零时,所有等待的线程可以继续执行。 - **CyclicBarrier**:多线程同步点,允许一组线程等待其他线程到达某个点后再继续执行。 - **Semaphore**:...

    JAVA并发编程-2-线程并发工具类

    JAVA并发编程-2-线程并发工具类一、Fork/Join1、分而治之与工作密取2、使用标准范式3、Fork/Join的同步用法4、Fork/Join的异步用法二、CountDownLatch三、CyclicBarrier四、Semaphore信号量五、Exchanger ...

    Java 多线程与并发-Java并发知识体系详解.pdf

    线程的中断、互斥同步可以通过中断机制、wait/notify机制和`synchronized`关键字实现,线程间的协作可以使用Condition、CountDownLatch、CyclicBarrier等工具类。 在Java中,除了`synchronized`,还有更高级的锁...

    java-java面试题库整理-基础-JVM-线程并发-框架等.zip

    - 并发工具类:了解ConcurrentHashMap、CountDownLatch、CyclicBarrier、Semaphore等并发工具的用法。 4. **框架** - Spring框架:理解依赖注入(DI)和面向切面编程(AOP),掌握Spring MVC和Spring Boot的应用...

    countdownlatch-example-sourcecode.zip

    通过对`countdownlatch-example-sourcecode.zip`中的代码学习,我们可以更深入地理解CountDownLatch的工作机制,将其有效地应用于实际的并发编程中。同时,掌握好CountDownLatch和其他并发工具类,能够帮助我们编写...

    多线程精品资源--这是RedSpider社区成员原创与维护的Java多线程系列文章。.zip

    - **同步机制**:为了避免多个线程并发访问共享资源导致的数据不一致,Java提供了synchronized关键字、Lock接口(如ReentrantLock)以及 volatile 关键字来实现线程同步。 - **死锁**:当两个或更多线程相互等待...

    mybaits 多线程 实现数据批量插入 (运用CountDownLatch实现闭锁)

    在Java并发编程中,`CountDownLatch`是一个同步辅助类,它允许多个线程等待其他线程完成操作。在批量插入数据的场景下,可以创建一个CountDownLatch对象,初始化为线程的数量,每个线程处理完自己的数据后调用`...

    多线程countDownLatch方法介绍

    在Java多线程编程中,CountDownLatch是一个非常重要的同步工具类,它可以帮助我们协调多个线程之间的交互。本文将深入探讨CountDownLatch的工作原理、使用场景以及相关源码分析。 CountDownLatch是一个计数器,初始...

    多线程demo程序-轻松掌握多线程技术

    - 使用CountDownLatch或CyclicBarrier等并发工具类:在所有工作完成后,触发一个事件来结束线程。 5. **线程状态管理**: 线程有五种基本状态:新建、可运行、运行、阻塞和死亡。理解这些状态有助于调试和优化多...

    并发编程实践,全面介绍基础知识、JVM同步原语、线程安全、低级并发工具、线程安全容器、高级线程协作工具、Executor部分等

    本文将全面介绍Java并发编程的基础知识、JVM同步原语、线程安全、低级并发工具、线程安全容器、高级线程协作工具以及Executor服务。 1. **基础知识** - **并发与并行**:并发是指多个任务在同一时间段内交替执行,...

    学习多线程之一:线程通信--利用事件对象.zip_线程通信

    在多线程编程中,线程通信是一个至关重要的概念,特别是在并发执行任务时,确保不同线程间的协作和数据同步。本教程将聚焦于利用事件对象进行线程间的通信,这是实现多线程同步的一种常见方法。 事件对象,通常称为...

    Java并发编程-3.pdf

    CountDownLatch、CyclicBarrier 和 Semaphore 等多线程协作机制都是 Java 并发编程中的重要组成部分。它们可以帮助开发者编写高效、可靠的多线程程序,解决复杂的并发问题。 在实际开发中,我们可以根据具体情况...

    JAVA线程高级-线程按序交替执行

    - JUC包含了许多高级并发组件,如`Semaphore`信号量、`CyclicBarrier`回环栅栏、`CountDownLatch`倒计时器和`Exchanger`交换器等,它们可以帮助控制线程的执行顺序。 - `Semaphore`可以限制同时访问特定资源的线程...

    java并发编程-AQS和JUC实战

    以上介绍了 Java 并发编程中几个重要的概念和技术,包括 `ReentrantLock`、`Condition`、`Semaphore`、`ReadWriteLock`、`CountDownLatch`、`CyclicBarrier` 和 `LockSupport`。这些技术为我们提供了丰富的并发控制...

    Java线程并发工具类CountDownLatch原理及用法

    总结来说,CountDownLatch和CyclicBarrier都是Java并发编程中的重要工具,它们可以帮助开发者协调多线程间的同步行为。CountDownLatch更适合于一次性使用的场景,用于让一个线程等待其他线程完成特定操作,而...

    java并发编程-从入门到精通

    Java的并发工具类如CountDownLatch、CyclicBarrier和Semaphore等,是实现线程协调的重要手段。它们在多线程间提供同步点,控制线程的执行顺序,或者限制同时访问特定资源的线程数量。 此外,Future和...

Global site tag (gtag.js) - Google Analytics