`
wanxiaotao12
  • 浏览: 473800 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

CountDownLatch 简介和例子

 
阅读更多

在一些应用场合中,某段程序需要等待某个条件达到要求后才能执行,或者等待一定长的时间后执行

 

CountDownLatch类是一个同步倒数计数器,构造时传入int参数,该参数就是计数器的初始值,每调用一次countDown()方法,计数器减1,计数器大于0 时,await()方法会阻塞后面程序执行,直到计数器为0,await(long timeout, TimeUnit unit),是等待一定时间,然后执行,不管计数器是否到0了

这时如果计数器不为0,表示还有线程没有执行完, 这些没有执行完的线程, 将会停止执行

 

http://www.cnblogs.com/shiyanch/archive/2011/04/04/2005233.html

 

http://www.blogjava.net/freeman1984/archive/2011/07/04/353654.html

分享到:
评论

相关推荐

    CountDownLatch和CyclicBarrier用法实例大全

    在Java并发编程中,CountDownLatch和CyclicBarrier是两种非常重要的同步工具类,它们用于协调多个线程间的协作。这两个工具都是在`java.util.concurrent`包下,是Java并发库的重要组成部分。 **CountDownLatch** ...

    java并发编程中CountDownLatch和CyclicBarrier的使用借鉴.pdf

    在上面的例子中, CountDownLatch被用来模拟百米赛跑的场景,其中八名运动员同时起跑,由于速度的快慢,肯定会出现先到终点和晚到终点的情况,而终点有个统计成绩的仪器,当所有选手到达终点时,它会统计所有人的...

    利用 CountDownLatch 类实现线程同步

    在实际开发中,结合 `ExecutorService` 和 `Future`,我们可以构建更复杂的并发控制策略,以优化多线程程序的性能和可维护性。然而,也要注意,过度使用或不恰当使用同步工具可能导致死锁或性能下降,因此在设计并发...

    java并发编程中CountDownLatch和CyclicBarrier的使用.pdf

    在上述的百米赛跑例子中,CountDownLatch被巧妙地应用了。`CountDownLatch(int count)`构造函数接收一个初始计数值,表示需要等待的线程数量。每个线程完成任务后,调用`countDown()`方法使计数值减一,直到计数值减...

    CountDownLatch详解.docx

    这个例子展示了 CountDownLatch 如何帮助协调多线程间的同步。等待线程通过调用 `await()` 方法阻塞自己,直到所有工作线程完成它们的 `run()` 方法,调用 `countDown()`。一旦计数器达到0,所有等待的线程将被释放...

    27 倒数计时开始,三、二、一—CountDownLatch详解.pdf

    CountDownLatch 是 Java 中一个强大的并发工具类,常用于线程间的协调与同步。它由 Java Concurrency Utilities (JCU) 包中的 `java.util....正确使用 CountDownLatch 可以提高程序的并发效率和线程间协作的准确性。

    Java并发包之CountDownLatch用法.docx

    在这个例子中,`CountDownLatchTest`的主方法创建了3个线程模拟3位乘客登机,`CountDownLatch`的计数器初始化为3。当所有乘客登机完成后,主线程会继续执行并宣布飞机起飞。 `CountDownLatch`在并行任务拆分和优化...

    Java中CountDownLatch用法解析

    在给出的代码示例中,`CountDownLatchDemo`类创建了两个`CountDownLatch`实例:`begin`和`end`。`begin`计数器的初始值为1,代表比赛开始的信号;`end`计数器的初始值为5,对应5位参赛运动员。在主方法中,首先创建...

    CountDownLatch同步工具类使用详解

    在上面的例子中,我们使用CountDownLatch来控制线程的执行顺序,使得主线程等待代表选手的线程执行完成后再执行。我们可以看到,通过CountDownLatch的使用,我们控制了线程的执行顺序。在上面的代码中,我们使用到...

    并发编程之Tools&CountDownLatch&Semaphore原理与应用1

    举个例子,假设我们有n个子线程需要完成任务,主线程可以使用CountDownLatch来等待所有子线程完成。当所有子线程调用`countDown()`后,主线程的`await()`方法将返回,表明所有子任务都已结束。 总结,Semaphore和...

    Java开发宝典的所有例子

    5. **多线程**:Java支持多线程编程,例子会介绍Thread类的使用、线程同步方法(如synchronized关键字、wait()、notify()等)以及并发工具类如Semaphore、CountDownLatch等。 6. **网络编程**:Java的Socket编程...

    JAVA例子100

    【JAVA例子100】这个资源对于初学者来说是一份宝贵的学习材料,它包含了100个不同的JAVA编程示例,旨在帮助新手更好地理解和掌握JAVA语言的基础与进阶概念。以下将详细介绍这些知识点: 1. **JAVA基础语法**:这...

    Java并发编程一CountDownLatch、CyclicBarrier、Semaphore初使用

    在Java并发编程中,CountDownLatch、CyclicBarrier和Semaphore是三种重要的线程协作工具,它们都基于AbstractQueuedSynchronizer(AQS)框架来实现线程间的同步和协调。AQS是一个内置的锁和同步组件,它为构建高级...

    java100例,java的经典例子

    这100个例子可能包括了以上所有或部分知识点,通过实践每个例子,学习者能更好地理解Java语言的特性和用途,从而提升编程技能。在学习过程中,一定要注意阅读源码、理解代码逻辑,并尝试自己动手编写和修改,这是...

    java例子程序源代码

    线程和并发处理也是Java的强项,你可能会找到多线程创建(Thread类和Runnable接口)、同步机制(synchronized关键字、wait/notify、Lock接口)、并发工具类(如ExecutorService、Semaphore、CountDownLatch)的实例...

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

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

    Java中多线程同步类 CountDownLatch

    以下是一个简单的使用CountDownLatch的例子: ```java import java.util.concurrent.CountDownLatch; public class TestThread extends Thread { CountDownLatch cd; String threadName; public TestThread...

    java线程并发countdownlatch类使用示例

    这个例子展示了`CountDownLatch`如何协调多个线程的执行顺序,确保在所有预设任务完成后,主任务才能继续执行。在实际应用中,`CountDownLatch`常用于分布式系统、多线程协作、测试场景等,例如等待所有客户端连接...

    java多线程并发编程例子

    Java多线程并发编程是Java开发中的重要领域,特别是在服务器端和高并发应用中不可或缺。`java.util.concurrent`包提供了丰富的工具类,帮助开发者更好地管理线程和优化并发性能。以下将详细介绍标题和描述中涉及的...

    zookeeper-watcher- 简单例子

    Apache ZooKeeper 是一个分布式协调服务,它为分布式应用程序提供了简化的命名服务、配置管理、集群管理和分布式同步等基础功能。在Zookeeper中,Watcher 是一个非常重要的特性,它允许客户端对Zookeeper中的数据...

Global site tag (gtag.js) - Google Analytics