ReentrantLock原理分析图(解锁)
2020-03-30 15:40:19 0 举报
ReentrantLock原理分析图(解锁)
作者其他创作
大纲/内容
Y
start
tryRelease
end
ReentrantLock
解锁
unparkSuccessor
当前线程是否持有锁
AbstractQueuedSynchronizer
获取next节点
N:抛出异常
state=0
release
尝试解锁
从队列尾部开始遍历,找到第一个waitStatus大于0的线程,然后唤醒他
N:说明还需要再解锁,当前线程继续执行
N:唤醒下一个节点
Thread
next==null或next的waitsatus>0
Y:锁状态(state)-1
0 条评论
下一页