AQS获取锁过程
2021-04-09 18:19:43 1 举报
AQS获取锁流程图,ReentrantLock.lock()过程
作者其他创作
大纲/内容
tail指向当前线程Node
head = new Node()tail = headnewNode为一个空节点(哨兵节点)
N
tail == null ?
head指针指向当前Node
设置独占线程
shouldParkAfterFailedAcquire
Y
enq(node)
ReentrantLock获取锁过程
tail == null?
lock.lock()
node.predecessor() == head && tryAcquire
尝试获得锁?
NonFairLock.tryAcquire(1)
LockSupport.park()
acquire(1)
addWaiter()
0 条评论
回复 删除
下一页