ReentrantLock_FairSync
2021-10-08 09:23:17 0 举报
ReentrantLock公平锁流程图
作者其他创作
大纲/内容
success
设置stat状态为1
N
锁被占用
锁未被占用
Y
阻塞当前线程
尝试获取锁
fail
设置独占线程为当前线程
创建当前线程node
AQSaddWaiter()
获取前驱节点
独占线程为当前线程
第一个节点线程是否是当前线程
前驱节点为头结点
FairSynctryAcquire()
将当前节点设置为头结点
AQSselfInterrupt()
将前驱节点修改为signal
AQSacquireQueued()
返回node
将node添加到队列尾部
初始化队列
结束
同步队列是否有等待的线程
state+1并设置state
state==0
同步队列是否存在
0 条评论
下一页