获取共享锁
2017-04-15 13:08:15 0 举报
AQS 共享锁获取
作者其他创作
大纲/内容
请求共享锁(acquireShared)
唤醒等待节点(doReleaseShared)
Y
线程被唤醒
doAcquireShared
设置头节点判断是否需要唤醒后继结点(setHeadAndPropagate)
N
挂起当前线程,等待唤醒parkAndCheckInterrupt
返回
创建一个与当前线程关联的节点,并添加到同步队列的尾部(addWaiter)
该节点的前继节点(prev)是否为 head
是否挂起当前线程(shouldParkAfterFailedAcquire)
循环尝试获取锁tryAcquireShared
成功获取锁返回
尝试获取锁(tryAcquireShared)
0 条评论
下一页