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

理解CountDownLatch

    博客分类:
  • java
阅读更多
字面意思是倒计时类
类名其实说的很形象,倒数到0时线程解除阻塞,继续往下执行

测试类
public class TestCDL {
private static CountDownLatch countDownLatch = new CountDownLatch(3);

public static void test(){

Thread thread = new Thread(){
@Override
public void run() {
try {
//阻塞在这儿了
countDownLatch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}finally{
System.out.println("after await" + this.getId());
}
}
};

thread.start();

//count = 3
System.out.println("Count:" + countDownLatch.getCount());
countDownLatch.countDown();

//count = 2
System.out.println("Count:" + countDownLatch.getCount());

countDownLatch.countDown();
countDownLatch.countDown();

//count = 0 ;线程解除了阻塞
System.out.println("Count:" + countDownLatch.getCount());
}

public static void main(String[] args) {
test();
}
}
0
0
分享到:
评论
1 楼 mercyblitz 2010-07-10  
CountDownLatch实现很简单,我很佩服Doug Lea设自己的AbstractQueuedSynchronizer。其利用状态信息控制pack和uppack.

相关推荐

    CountDownLatch Demo

    在这个"CountDownLatch Demo"中,我们将深入理解 CountDownLatch 的原理、用法以及如何在实际项目中应用。 CountDownLatch 的核心概念在于一个计数器(count),初始化时设置为一个非负整数。这个计数器通过 `...

    countdownlatch-example-sourcecode.zip

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

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

    1. **理解 CountDownLatch** CountDownLatch 的名字来源于其工作原理,就像倒数计时一样,从一个初始设定的计数值开始,每当一个线程完成其任务,计数值就会减一。当计数值为零时,意味着所有线程都已经完成了它们...

    多线程countDownLatch方法介绍

    在Java多线程编程中,CountDownLatch是一个非常重要的同步工具类,它可以帮助我们协调多个线程之间的交互。本文将深入探讨CountDownLatch的工作...理解其工作原理和应用场景,能帮助开发者更好地设计和优化并发程序。

    利用 CountDownLatch 类实现线程同步

    首先,让我们深入理解 `CountDownLatch` 的工作原理。`CountDownLatch` 在构造时会接收一个整数值作为计数器的初始值。这个计数器只能递减,不能递增。每当一个线程完成其任务后,它会调用 `countDown()` 方法,使...

    源码详解CountDownLatch

    CountDownLatch 是 Java 中一个强大的并发工具,用于协调多个线程之间的同步。它是 java.util.concurrent 包中的一个类,主要用于在多线程...理解 CountDownLatch 的工作原理有助于我们更有效地设计和优化多线程程序。

    CountDownLatch和CyclicBarrier用法实例大全

    学习和理解这两个工具,对于提升Java并发编程的能力至关重要,它们能帮助我们编写出更加高效、可维护的并发代码。通过阅读《java并发编程》中的实例,你可以更深入地掌握这些概念,并在实际工作中灵活运用。

    CountDownLatch练习

    CountDownLatch是Java并发编程中一个重要的同步工具类,它允许一个或多个线程等待其他线程完成操作。...通过阅读和理解提供的代码样例(如`countdownlatch`文件),可以进一步加深对CountDownLatch的理解和应用。

    CountDownLatch源码解析之countDown()

    CountDownLatch源码解析之countDown()方法详解 ...通过对tryReleaseShared()方法和doReleaseShared()方法的实现原理的分析,我们可以更好地理解CountDownLatch的工作机制,并更好地应用于实际开发中。

    Java concurrency之CountDownLatch原理和示例_动力节点Java学院整理

    CountDownLatch是Java并发编程中一个...理解其工作原理和使用方法对于编写高效的并发程序至关重要。在实际编程中,应根据具体需求选择CountDownLatch或CyclicBarrier,以及其他并发工具,以确保程序的正确性和性能。

    Java中CountDownLatch用法解析

    在Java并发编程中,`CountDownLatch`是一个非常重要的工具类,它位于`java.util.concurrent`包下,用于协调多个线程间的同步。...理解和熟练使用`CountDownLatch`对于编写高效的多线程Java程序至关重要。

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

    在Java并发编程中,CountDownLatch和CyclicBarrier是两种非常重要的同步工具,用于协调多个线程之间的交互。它们都属于java.util.concurrent...理解并熟练运用这两种工具,可以极大地提高多线程程序的效率和可维护性。

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

    在深入理解这些工具的同时,学习AQS是必要的,因为它是Java并发库的基础,许多高级同步组件如ReentrantLock、Semaphore、CountDownLatch等都基于AQS实现。AQS通过维护一个共享状态(state)来控制同步,提供了`...

    java利用CountDownLatch实现并行计算

    Java 利用 CountDownLatch 实现并行计算 Java 中的并行计算是一个非常重要的概念,为了提高计算速度和效率,Java 提供了一些工具和类来实现并行...hope 本文能够帮助读者更好地理解并行计算和 CountDownLatch 的使用。

    java线程并发countdownlatch类使用示例

    Java中的`CountDownLatch`是线程并发控制的一个重要工具,它允许一组线程等待其他...通过以上解释和示例,你应该对Java中的`CountDownLatch`有了深入的理解,可以将其运用到实际的并发编程中,解决线程间的协调问题。

    浅谈java并发之计数器CountDownLatch

    CountDownLatch是Java并发编程中一个重要的工具类,用于协调多个线程间的同步。它通过一个计数器来控制线程的执行流程,使得一个或多个线程等待...正确理解和使用CountDownLatch能够提高程序的效率和并发控制的精确性。

    Java中多线程同步类 CountDownLatch

    Java中的CountDownLatch是一种多线程同步工具类,它在并发编程中扮演着重要角色,尤其在需要等待一组任务完成后再进行下一步操作的场景下。...正确理解和使用它可以帮助开发者编写出更加高效、可靠的多线程程序。

    java并发编程专题(八)----(JUC)实例讲解CountDownLatch

    本篇文章主要介绍了Java中的CountDownLatch类,作为Java并发编程专题(八)的一部分,通过实例讲解帮助读者理解和学习。下面是文章中的知识点总结: 一、CountDownLatch简介 CountDownLatch是一个同步辅助类,允许...

    threadSyncCountDownLatch:具有countDownLatch的线程同步模式

    在Java多线程编程中,`...理解并熟练运用`CountDownLatch`,可以帮助我们编写出更高效、更稳定的多线程程序。在实际项目中,结合其他并发工具如`CyclicBarrier`、`Semaphore`等,我们可以构建出更复杂的并发控制策略。

    java六大必须理解的问题

    理解线程安全、同步机制(synchronized关键字、Lock接口、volatile变量)以及并发工具类(如Semaphore、CountDownLatch、CyclicBarrier)是编写高效并发代码的基础。 3. **异常处理(Exception Handling)** Java...

Global site tag (gtag.js) - Google Analytics