AQS等待队列流程图
2017-04-10 16:32:48 0 举报
AQS等待队列流程图
作者其他创作
大纲/内容
释放同步状态(fullyRelease)
节点移入同步队列(signal)
是
构建节点加入队尾(addConditionWaiter)
函数返回退出等待队列
线程继续运行(unlock→release→LockSupport.unpark)
线程A
失败
清理非等待队列节点(unlinkCancelledWaiters)
移除所有已非等待状态的节点(addConditionWaiter)
节点是否在同步队列中(isOnSyncQueue)
线程B
线程A进入等待队列(await)
挂起线程(LockSupport.park)
确保同步队列中节点的状态(acquireQueued)
抛出异常
否
成功
0 条评论
下一页