ReentrantLock
2021-11-04 18:11:35 13 举报
ReentrantLock
作者其他创作
大纲/内容
tail
成功
waitStatus
prev
thread
CAS设置state
head
next
失败
尝试获取锁标记
nextWaiter
AbstractOwnableSynchronizer
获取当前state
AQS同步队列
尾节点
节点
设置锁持有线程为当前线程
Y
自旋
头部节点拥有同步状态
AbstractQueuedSynchronizer
transient Thread exclusiveOwnerThread
state为0
获取到锁标记
检查当前线程是否是持有锁的线程
创建节点,【CAS+死循环】放到队列
头节点
NonfairSync.lock()
自旋获取同步状态
state++ : 可重入
加锁结束
N
state不为0
0 条评论
下一页