ReentrantLock
吃烤肉吗
这个作者很懒,什么都没留下…
展开
-
Java的ReentrantLock数据结构图解
ReentrantLock数据结构图解ReentrantLock总的来说是维护了一个等待队列(或者叫做同步队列)和若干个条件队列(取决于程序中创建了几个条件对象),队列里放的是一个个Node。下面通过ReentrantLock的类图来详细说明一下:从类图中可以看到ReentrantLock里面有一个Sync类型的sync对象,Sync是ReentrantLock的一个内部类,该内部类继承了AbstractQueuedSynchronizer(简称AQS)。AQS就是Lock维护的那个等待队列。.原创 2020-08-01 18:21:14 · 540 阅读 · 0 评论 -
ReentrantLock解锁流程
ReentrantLock解锁流程上篇介绍了ReentrantLock的加速流程,传送门:https://blog.csdn.net/qq_25178353/article/details/107568396有加锁就有解锁,接下来探讨一下解锁的流程。解锁流程总体来说比这加锁简单。先上流程图:解锁流程从调用lock.unlock()开始,lock.unlock()方法调用的是sync.release(1)方法,sync.release(1)的代码如下: public final bo.原创 2020-07-27 20:16:47 · 639 阅读 · 0 评论 -
ReentrantLock的加锁过程
ReentrantLock的加锁过程ReentrantLock是一个可重入的排他锁,他的加锁过程是通过cas操作完成的。ReentrantLock有三个内部类,分别是Sync , FairSync,NofairSync。其中后两者都继承了前者。通过他的内部类可以大概了解到ReentrantLock支持公平锁与非公平锁。废话不多说,先看一下ReentrantLock的非公平锁加锁的流程图。下面按照流程图结合代码来说明一下...原创 2020-07-24 20:05:45 · 745 阅读 · 0 评论