AQS/Condition原理
2021-03-25 23:27:08 0 举报
登录查看完整内容
AQS与Condtion原理图
作者其他创作
大纲/内容
ConditionObject
Thread : null
Node : pred
Node : next
一、获得锁,并进入同步队列
Node : t
waitstatus : 0
AbstractOwnableSynchronizerexclusiveOwnerThread = ThreadAstate = 1
Node : nextWaiter
二、调用await的线程首先进入等待队列
三、进入等待队列的节点释放锁
Node : lastWaiter
waitstatus : -1
Node : firstWaiter
Thread : ThreadA
Node : tail
waitstatus : -2
lock.newCondition()
AbstractOwnableSynchronizerexclusiveOwnerThread = ThreadBstate = 1
AQS
first
Node : head
null
status : -1
四、ThreadA重新持有锁
ThreadB : signal
status : -2
Thread : ThreadB
ThreadA : awit
四、获得锁的ThreadB唤醒ThreadA,由等待队列进入同步队列,此时ThreadA仍然持有锁,则park挂起
0 条评论
回复 删除
下一页