线程并发工具类之CountDownLatch的使用及原理分析
2024-09-19 22:28:59
原文链接:http://www.studyshare.cn/blog/details/1149/1
java开发工具下载地址及安装教程大全,点这里。
更多技术文章,在这里。
一、定义
CountDownLatch是线程并发工具类,该类具有一个计数器,计数器具有一个初始化的值,当主线程调用latch.await()方法则进行阻塞,调用latch.countDown()方法时计数器值减一,一直等到计数器的值减为0的时候,原来阻塞的方法继续往下执行。代码如下:
1、定义两个线程,线程一调用一次countDown(),线程二调用两次countDown()
2、主线程代码如下
3、运行结果
二、使用场景
1、使用CountDownLatch编写高并发测试程序,可以使用CountDownLatch初始化100或者更多线程,当所有线程初始化完毕后一起去调用需要测试的业务模块代码,以此来模拟实际场景的高并发访问,测试业务代码对高并发的支持极限。
2、某些系统启动之前需要做很多初始化工作,只有当初始化工作线程中的所有代码执行完毕后,才继续执行主线程代码,此时使用CountDownLatch来实现。
三、实现原理
CountDownLatch是基于AQS(AbstractQueuedSynchronizer (抽象队列同步器))实现的,关于AQS在另外一篇文章有详细讲解,包括对源码进行了深入分析,请参考:http://www.studyshare.cn/blog/details/1131/1
原创文章,转载请注明来源
java开发工具下载地址及安装教程大全,点这里。
更多技术文章,在这里。
最新文章
- Android-简单的图片验证码
- Orchard中如何配置远端发布
- YourSQLDba开源项目发布到codeplex网站了
- 在WebAPI使用Session
- C# ArrayList的用法
- iOS Xcode behaviors个人常用Debug配置
- BZOJ 3450 Easy
- JS 获取Button控件的提交类型
- SQL效率低下原因主要有
- [转] Javascript中数组与字典(即object)的使用
- uva 10032 Problem F: Tug of War
- python提取隐含结构的字符串
- 关于WIN7 家庭版 iis 部署问题
- [bzoj2120][数颜色] (暴力 or 分块)
- H5 Canvas vs. SVG
- 固态硬盘Ghost安装Windows 10无法引导的问题
- 最强Android书 架构大剖析 作者网站
- ubuntu下apache新建虚拟主机
- [Windows端口占用] 找到占用端口的进程并杀死
- sublime text3快速生成html头部信息
热门文章
- KAFKA &;&; zookeeper 集群安装
- Jdk8 DNS解析
- 基于vue和echarts的数据可视化实现
- [oracle/java/sql]用于上十万批量数据插入Oracle表的Java程序
- NIO通信中connect()方法和finishConnect()方法的区别
- coroutine闲谈
- CentOS7下的CDH 6.2.0 安装过程
- bladex开发自己的服务不推送服务器的方法
- FastJson 对json中的KEY值的大小写转换方法
- [K8s] Kubernetes 是什么 不是什么