CountDownLatch 闭锁

1.简述

从名字可以看出,CountDownLatch是一个倒数计数的锁, 当倒数到0时触发事件,也就是开锁,其他人就可以进入了。

2.相关类

java.util.concurrent.CountDownLatch

类。

java.util.concurrent.CountDownLatch.CountDownLatch(int count)

构造函数,设置计数器的初始值。

void java.util.concurrent.CountDownLatch.countDown()

每调用一次该方法,计数器减1。

void java.util.concurrent.CountDownLatch.await() 

当前线程被阻塞,直到计数为0.

3.示例代码

时间: 2024-10-03 05:41:42

CountDownLatch 闭锁的相关文章

java多线程之闭锁(CountDownLatch)、同步屏幕(CyclicBarrier)、信号量(Semaphore)

闭锁CountDownLatch 若有多条线程,其中一条线程需要等到其他所有线程准备完所需的资源后才能运行,这样的情况可以使用闭锁. import java.util.concurrent.CountDownLatch; /** * Created by chenjianan on 2017/1/17-15:11. * <p> * Describe: CountDownLatch 闭锁练习, * 使用场景:若有多条线程,其中一条线程要等其他线程执行完才能执行,那么可以用闭锁: * 闭锁只会阻塞

实例讲解Java并发编程之闭锁_java

闭锁相当于一扇门,在闭锁到达结束状态之前,这扇门一直是关闭着的,没有任何线程可以通过,当到达结束状态时,这扇门才会打开并容许所有线程通过.它可以使一个或多个线程等待一组事件发生.闭锁状态包括一个计数器,初始化为一个正式,正数表示需要等待的事件数量.countDown方法递减计数器,表示一个事件已经发生,而await方法等待计数器到达0,表示等待的事件已经发生.CountDownLatch强调的是一个线程(或多个)需要等待另外的n个线程干完某件事情之后才能继续执行. 场景应用: 10个运动员准备赛

Java并发CountDownLatch编程开发示例

在多线程编程时,常常需要解决线程同步问题,在上一节讲得BlockQueue的take和put方法,是通过阻塞来控制生产者和消费者执行流程,它其实也是在解决线程同步问题.另外在线程同步问题还可以通过很多方式解决比如信号量,栅栏,闭锁.今天所说的CountDownLatch就是一种闭锁同步类,它的作用就像一扇门,在达到结束状态之前门是关闭的,并且没有任何线程可以通过这扇门,当达到了结束状态,门打开,所有的线程可以通过.并且结束后,不会再关闭. CountDownLatch简介 CountDownLa

并发工具类(一)等待多线程完成的CountDownLatch

简介 CountDownLatch 允许一个或多个线程等待其他线程完成操作. 应用场景 假如有这样一个需求,当我们需要解析一个Excel里多个sheet的数据时,可以考虑使用多线程,每个线程解析一个sheet里的数据,等到所有的sheet都解析完之后,程序需要提示解析完成.在这个需求中,要实现主线程等待所有线程完成sheet的解析操作,最简单的做法是使用join.代码如下: 01 public class JoinCountDownLatchTest { 02   03     public s

Java并发编程:CountDownLatch、CyclicBarrier和Semaphore

在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法. 以下是本文目录大纲: 一.CountDownLatch用法 二.CyclicBarrier用法 三.Semaphore用法 若有不正之处请多多谅解,并欢迎批评指正. 请尊重作者劳动成果,转载请标明原文链接: http://www.cnblogs.com/dolphin0520/p/3920397.htm

关于CountDownLatch类Demo代码

  package test; import java.util.concurrent.CountDownLatch; public class CountDownLatchDemo {  /**   *   * @author Administrator/2012-3-1/上午09:57:05   */  public static void main(String[] args) {      int threadNumber = 10;           final CountDownL

CyclicBarrier和CountDownLatch介绍

CyclicBarrier介绍 (一) 一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point).在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用.因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier.CyclicBarrier 支持一个可选的 Runnable 命令,在一组线程中的最后一个线程到达之后(但在释放所有线程之前),该命令只在每个屏障点运行一次.若

java之JUC系列-外部Tools-Executors|Semaphor|Exchanger|CyclicBarrier|CountDownLatch

前面写了两篇JDBC源码的文章,自己都觉得有点枯燥,先插一段JUC系列的文章来换换胃口,前面有文章大概介绍过J U C包含的东西,JUC体系包含的内容也是非常的多,不是一两句可以说清楚的,我这首先列出将会列举的JUC相关的内容,然后介绍本文的版本:Tools部分 J.U.C体系的主要大板块包含内容,如下图所示: 注意这个里面每个部分都包含很多的类和处理器,而且是相互包含,相互引用的,相互实现的. 说到J UC其实就是说java的多线程等和锁,前面说过一些状态转换,中断等,我们今天来用它的tool

CountDownLatch和CyclicBarrier 专题

javadoc里面的描述是这样的. CountDownLatch: A synchronization aid that allows one or more threads to wait until a set of operations being performed in other threads completes.(其它线程完成一些操作,但不等于这些线程要结束,也要不结束) CyclicBarrier : A synchronization aid that allows a se