源码梳理(4)ReentrantLock的locking method (AQS related)
发布时间
阅读量:
阅读量
文章目录
【概述
- 4 AbstractQueuedSynchronizer(AQS)
- 4.1 Node节点的说明
- 4.2 acquire(node node, int arg, shared boolean shared, interruptible boolean interruptible, timed boolean timed, long time)方法
1 概述
本文重点考察非公平实现细节,并基于JDK17源码展开研究。涵盖两个主要内容:首先深入探究其非公平实现细节;其次研究其在多线程场景下的运行效率;最后对比两种版本在性能指标上的差异情况。
- 利用内置的Sync同步器进行锁的申请
- 利用AbstractQueuedSynchronizer(抽象队列同步器AQS)进行锁的申请
2 ReentrantLock执行lock方法涉及到的属性和内部类
在调用lock方法时,在源代码层面实际上是私有属性Sync类所具有的lock方法。
作为ReentrantLock的一个嵌套类实现,并且Nonfair Sync和Fair Sync两种子类继承了这一功能。
Reentrant Lock实例中的sync属性默认设置为非公平同步器 Nonfair Sync;若在构造函数参数中传递true,则切换为公平同步器
全部评论 (0)
还没有任何评论哟~
