AQS流程
2020-01-17 09:45:19 0 举报
aqs流程
作者其他创作
大纲/内容
是
当前节点的前驱节点是否是首节点
线程已被唤醒
同步队列
lock
唤醒首节点的下个节点线程LockSupport.unpark
unlock
继续检查
原首节点出队
成功
检查线程状态前驱节点是否等待状
否
执行同步代码
失败
线程
唤醒线程
入队
cas设置前驱节点为等待状态
创建线程节点
节点自旋检查
阻塞当前线程LockSupport.park
尝试获取锁
设置当前节点为首节点,断开原首节点的next和当前节点的prev即可
0 条评论
下一页