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(
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
jdk11源码-ReentrantLock源码
更多java源码分析请见:jdk11源码分析系列文章专栏:Java11源码分析 @[toc] 概述 ReentrantLock是java中常用的加锁工具,下面是一个典型的写法: ReentrantLock lock = null; try { System.out.println(System.currentTimeMillis()); lock = new ReentrantLock(); lock.lock(); lock.lock(); TimeUnit.SECONDS.sleep(1); System.out.println(System.currentTimeMillis()); } catch (Exception e) { e.printStackTrace(); }
- 下一篇
jdk11 CountDownLatch源码分析
@[toc] 概述 CountDownLatch也是利用的AQS队列,关于AQS队列的讲述请参考前面两篇文章: jdk11源码-ReentrantLock源码 jdk11源码--ReentrantReadWriteLock源码 AQS类是一个模板类,我们可以根据根据具体的需求通过重写以下几个方法来自定义实现同步器 tryAcquire (排它锁获取) tryRelease (排它锁释放) tryAcquireShared (共享锁获取) tryReleasedShared (共享锁释放) 我们看一下官方文档中的代码案例: import java.util.Random; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; class Dri
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Red5直播服务器,属于Java语言的直播服务器
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作