Java 并发编程之同步工具类闭锁 CountDownLatch
Java 同步工具类CountDownLatch相当于一个计数器,假设一个方法,等待一个计数器从初始值5变为0,每使用一次countdown()方法,计数器的值减少1,当计数器的值为0时,触发某件事。
使用很简单:
public class LatchTest {// 计数器设置为5private static CountDownLatch latch = new CountDownLatch(5);public void m() {try {Thread.sleep(2000L);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName()+" m()");// 线程结束时,计数器减少1latch.countDown();}public static void main(String[] args) {LatchTest test = new LatchTest();for (int i=0; i<5; i++) {new Thread(()->test.m()).start();}// 等待计数器变为0try {latch.await();} catch (InterruptedException e) {e.printStackTrace();}System.out.println("let's call main method");}
}
Java 并发编程之同步工具类闭锁 CountDownLatch相关推荐
- Java 并发编程之同步工具类 Exchanger
Exchanger 交换器,用于两个线程之间交换数据. 线程1调用exchange()方法,然后进行线程阻塞,等待线程2调用exchange()方法交换数据,线程2调用exchange()方法后,两个 ...
- Java 并发编程之同步工具类栅栏 CyclicBarrier
CyclicBarrier 用来阻塞一组线程,等待线程完成后才开始某件事情. 例如,开启5个线程,每个线程使用await方法开始阻塞,等待5个线程都完成,才开始执行await方法后面的代码. publ ...
- Java 并发编程之同步工具类信号量 Semaphore
Semaphore 可以理解为一个阈值,正在进行的操作数量不能超过此阈值,可以用来限制资源的访问,或者控制某个队列中对象的个数,也就是控制同时执行的线程的数量. 主要有acquire,release两 ...
- Java并发中常用同步工具类
为什么80%的码农都做不了架构师?>>> 同步工具类可以是任何一个对象,只要它根据其自身的状态来协调线程控制流.阻塞队列(BlockingQueue)可以作为同步工具类,其他类 ...
- Java高并发编程:同步工具类
内容摘要 这里主要介绍了java5中线程锁技术以外的其他同步工具,首先介绍Semaphore:一个计数信号量.用于控制同时访问资源的线程个数,CyclicBarrier同步辅助类:从字面意思看是路障, ...
- java并发编程学习juc工具类之Executors
文章目录 Executors 重要方法 1.newCachedThreadPool 2.newFixedThreadPool 3.newScheduledThreadPool 示例代码 4.newSi ...
- java并发基础(二)--- Java监视器模型、并发容器、同步工具类(闭锁、信号量)
原blog链接:http://www.cnblogs.com/peterxiao/p/6921903.html 总结一下第4.5章的东西. 一.java监视器模式 概念:把对象的所有可变状态都封装起来 ...
- 漫画编程java_【漫画】JAVA并发编程之并发模拟工具
上一节[漫画]JAVA并发编程三大Bug源头(可见性.原子性.有序性)我们聊了聊并发编程的三个bug源头,这还没开始进入并发世界,胖滚猪就遇到了难题.. 这个难题是所有初学者都会有的疑惑:没法复现那些 ...
- Java并发编程:同步容器
为了方便编写出线程安全的程序,Java里面提供了一些线程安全类和并发工具,比如:同步容器.并发容器.阻塞队列.Synchronizer(比如CountDownLatch).今天我们就来讨论下同步容器. ...
最新文章
- Visual与IMU多传感器融合的定位方案
- **PHP SimpleXML 使用详细例子
- SQL SERVER全面优化-------写出好语句是习惯
- node.js 爬虫中文乱码 处理
- springboot pom 依赖
- python编程选股_用Python选一个自己的股票池2
- 【题解】生日蛋糕-C++
- 使用用WCF中的双工(Duplex)模式将广告图片推送到每个Winform客户端机子上
- 与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。
- 4.程序员的自我修养---静态链接
- Java:接口文档示例
- 第二章 指令:计算机的语言
- 关于华硕电脑进入bios
- 人人商城系统安装服务器上,微擎及人人商城安装
- PS怎么做抽象流彩油画丙烯画效果
- [解疑][VS]Visual Studio软件编程时,ID号的格式ID_,IDS_,IDC_,IDI_,IDB_,IDD_之间有什么区别?
- 【算法分析】实验 1. 基于贪心的会议安排问题
- 酷我音乐linux版本,酷我音乐盒的 Gtk/Linux 实现 – v2.5 版本发布
- DCDC基础(8)-- 同步BUCK芯片的电性能参数解读二
- 湖南大学 实验八 青蛙与蚊子
热门文章
- 【Linux使用】Centos 7设置时区与时钟(chrony / ntp /systemd)
- 计算机网络学习笔记:第三章
- textaligncenter仍然不居中_三星Galaxy S21/S21+保护膜曝光:居中挖孔 回归直屏_手机行情...
- MFC中将窗口最小化到系统托盘和还原
- ajax请求使用utf-8,Ajax,请求标头UTF-8到ISO字符集[重复]
- python 爬虫库比较_公认8个效率最高的爬虫框架
- python库怎么绘画_[雪峰磁针石博客]python绘图作业:使用pygame库画房子
- Unreal、CryEngine、Gamebryo引擎介绍
- Salt-Syndic
- centos 6.5 rsync+inotify 实时同步