aqs笔记

AQS的整体详细流程图

总体的详细脉络上图写的已经非常详细,此处额外补充一些基础知识

cas操作究竟是什么意思

jdk源代码里经常看到如

设置尾
compareAndSetTail(Node expect, Node update) #

unsafe.compareAndSwapObject(this, headOffset, null, update)

设置头
compareAndSetHead(Node update) #

unsafe.compareAndSwapObject(this, tailOffset, expect, update)

compareAndSetWaitStatus和compareAndSetNext等 都是Unsafe类是在sun.misc包下的调用

在这里插入图片描述

aqs队列的结构图

懒得画了贴一个别人的
特别注意head的节点的线程值是null 任何正在占有锁的node的线程值都要设置成null
node.thread = null;
node.prev = null;
原因笔者忘记了,有知道的可以评论区指点。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值