Java并发——CountDownLatch
CountDownLatch
CountDownLatch
是Java并发中常用的一个工具类,通常称为锁存器latch,作用为同步一个或多个任务,强制等待指定任务执行完成。即多线程中控制一个或多个线程去等待其他线程完成操作。
1. 方法API
CountDownLatch
提供一个有参构造方法和四个常用方法
方法 | 说明 |
---|---|
CountDownLatch(int count)
|
有参构造器方法,count 为锁存器计数
|
await()
|
使当前线程进行同步队列等待,直到锁存器latch 的值为0 当前线程才会被唤醒,除非当前线程被中断
|
await(long timeout, TimeUnit unit)
|
带超时时间的await ,timeout 等待时间,unit 时间的单位。若超过等待时间不管latch 是否为0 都会唤醒当前线程
|
countDown()
|
使latch 的值减1 ,如果减到了0 ,则会唤醒所有等待在这个latch 上的线程。
|
getCount()
|
获取latch 的值
|
2. 例子
Java并发——CountDownLatch相关推荐
- java 并发统计_java并发编程|CountDownLatch计数器
0x01,CountDownLatch介绍 CountDownLatch是一个计数器,作为java并发编程中三个组件之一,这个组件的使用频率还是很多的.这里分享下自己画的java并发编程组件的图,后面 ...
- Java 并发专题 :闭锁 CountDownLatch 之一家人一起吃个饭
最近一直整并发这块东西,顺便写点Java并发的例子,给大家做个分享,也强化下自己记忆. 每天起早贪黑的上班,父母每天也要上班,话说今天定了个饭店,一家人一起吃个饭,通知大家下班去饭店集合.假设:3个人 ...
- 死磕Java并发:J.U.C之并发工具类:CountDownLatch
作者:chenssy 来源:Java技术驿站 在上篇博客中介绍了Java四大并发工具一直的CyclicBarrier,今天要介绍的CountDownLatch与CyclicBarrier有点儿相似. ...
- Java并发工具类(闭锁CountDownLatch)
并发工具类系列: Java并发工具类(闭锁CountDownLatch) Java并发工具类(栅栏CyclicBarrier) Java并发工具类(信号量Semaphore) 闭锁是一种同步工具类,可 ...
- 【Java 并发编程】CountDownLatch 简介
文章目录 I CountDownLatch 概念 II CountDownLatch 使用流程 III CountDownLatch API 简介 I CountDownLatch 概念 1. 概念 ...
- Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
2019独角兽企业重金招聘Python工程师标准>>> Java并发编程:CountDownLatch.CyclicBarrier和Semaphore 在java 1.5中,提供了一 ...
- Java 并发编程系列之闭锁(CountDownLatch)
在讲闭锁之前,我们先来思考一个问题:在多线程环境下,主线程打印一句话,如何保证这句话最后(其他线程全部执行完毕)打印? 博主目前可以想到的实现方式有两种.一种是通过 join() 方法实现,另一种就是 ...
- java并发中CountDownLatch的使用
文章目录 主线程等待子线程全都结束之后再开始运行 等待所有线程都准备好再一起执行 停止CountdownLatch的await java并发中CountDownLatch的使用 在java并发中,控制 ...
- Java并发教程– CountDownLatch
Java中的某些并发实用程序自然会比其他并发实用程序受到更多关注,因为它们可以解决通用问题而不是更具体的问题. 我们大多数人经常遇到执行程序服务和并发集合之类的事情. 其他实用程序不太常见,因此有时它 ...
最新文章
- 为何python不好找工作k-为何有人说Python不好找工作?
- Java初学者推荐学习书籍free下载
- Yum出错Error: Cannot find a valid baseurl for repo: addons
- 可重入锁是什么和demo
- 【Flink】Flink启动报错 BindException: Could not start rest endpoint on any port in port range 7089
- vue.js v-bind
- Myeclipse学习总结(1)——Myeclipse优化配置
- 联想服务器asp配置文件,.NET Core读取配置文件方式详细总结
- linux下各种文件设备,各硬件设备在Linux中的文件名
- 素数猜想对 c语言,1007 素数对猜想 (20 分)(C语言实现)
- 简单游戏代码_简单游戏
- STM32电机TB6612驱动
- SoundTouch音频处理库
- Firefly互动广告机解决方案
- 《大明王朝1566》台词摘录
- 利用鸿蒙开发新闻头条
- 如何在iPhone和iPad上使用Group FaceTime
- 期刊投稿状态_期刊投稿后的7种状态,如何应对
- 几何光学学习笔记(3)- 2.1光线经过单个折射球面的折射
- 苹果切换系统按哪个键_苹果全新笔记本 一体机正品专区
热门文章
- 02-JavaScript变量的强制类型转换
- Http和https请求过程
- Configure交叉编译
- 清除flashback日志
- ubuntu16.04登录界面输入用户名密码后又回到登录界面
- protobuf repeated数组类型的使用
- JSP实用教程-JSP语法
- 毕业论文中的“自动生成目录”设置(经验四)
- pyton--解决pycharm控制台中文显示unicode \xe6\x9d\x8e\xe7\x99\xbd\xe9\xa3\x9e码问题
- 0 基础 Java 自学之路(2022年最新版)