Advertisement

源码梳理(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)

还没有任何评论哟~