jdk11 CountDownLatch源码分析
@[toc]
概述
CountDownLatch也是利用的AQS队列,关于AQS队列的讲述请参考前面两篇文章:
AQS类是一个模板类,我们可以根据根据具体的需求通过重写以下几个方法来自定义实现同步器
- tryAcquire (排它锁获取)
- tryRelease (排它锁释放)
- tryAcquireShared (共享锁获取)
- tryReleasedShared (共享锁释放)
我们看一下官方文档中的代码案例:
import java.util.Random; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; class Dri

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
jdk11源码--ReentrantReadWriteLock源码
@[toc] 概述 在上一篇博文jdk11源码-ReentrantLock源码中介绍了ReentrantLock的源码实现。ReentrantReadWriteLock是ReentrantLock的兄弟类,顾名思义,读写锁。当前其内部实现也是借助于AQS队列,不过与ReentrantLock的实现稍有不同,后面会逐步分析。 一个典型使用案例: class RWDictionary { private final Map<String, Data> m = new TreeMap<>(); private final ReentrantReadWriteLock rwl = new ReentrantReadWriteLock(); private final Lock r = rwl.readLock(
- 下一篇
Fundebug前端异常监控插件兼容低版本的Android浏览器
Fundebug前端BUG监控服务 Fundebug是专业的程序BUG监控平台,我们JavaScript插件可以提供全方位的BUG监控,可以帮助开发者第一时间定位JavaScript执行错误、HTTP请求错误以及资源加载错误。并且,我们可以记录用户行为、“录制”用户操作视频,帮助开发者快速复现BUG,提高Debug效率。 兼容低版本Android浏览器 通过优化Babel配置,我们兼容了一些低版本的浏览器: { "presets": [ [ "@babel/preset-env", { "targets": { "ie": 6, "android": 4, "ios": 8 } } ] ] } 可知,Fundebug插件最低兼容IE 6,Android 4以及iOS 8。注意,我们保证Fundebug插件在这些浏览器下不会出错,但是并无意于为低版本浏览器提供全面的BUG监控服务。例如,我们的录屏功能仅支持一些高版本的浏览器,IE 6 ~ IE 10均不支持。 最后,感谢Fundebug用户闁鑅与疯狂紫萧的反馈。 参考 Fundebug录屏插件更新至0.4.0,修复BUG,优化性能 Fu...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS关闭SELinux安全模块
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS6,CentOS7官方镜像安装Oracle11G