AQS流程图
2021-04-20 16:21:12 18 举报
AQS流程分析
作者其他创作
大纲/内容
unlock
将前驱节点的waitStatus修改为SIGNAL
state是否为0
获取成功
CAS获取锁
是否成功
是
前驱节点是否为头结点
lock -> CAS获取锁
找到waitState小于0并且离头结点最近的节点
线程构造Node节点添加到等待队列队尾
成功
解锁
unpark
将state设为0
判断当前线程是否持有锁
获取到锁
得到头结点
当前线程挂起park
加锁
否
accquire() -> tryAccauired()
CAS尝试获取锁
失败
AQS的加锁与解锁
0 条评论
下一页