多线程之CAS原理

在这里插入图片描述
注意*如果用if判断相等再去更新就不是原子操作,有可能其他线程执行到这里导致if和更新不是原子操作,导致并发问题,CAS利用原子指令,将这条代码直接合成一条指令,变成原子操作在这里插入图片描述

1.没有原子类的时候代码实现i++
在这里插入图片描述
2.原子类操作i++
在这里插入图片描述
3. CAS是什么
在这里插入图片描述
3.1 CAS原理在这里插入图片描述
3.2为什么CAS不加锁就能保证原子性(硬件情况下保证)
在这里插入图片描述3.3CAS源码
在这里插入图片描述

3.4Unsafe类什么
在这里插入图片描述
3.5AtomicInteger原理
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

3.6Unsafe底层源码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.原子类API
在这里插入图片描述
4.1AtomicReference代码实战

在这里插入图片描述
5.手写自旋锁
while的时候如果已经期望值是thread,就会一直循环竞争锁
在这里插入图片描述
5.1自旋锁优缺点
在这里插入图片描述
5.2ABA问题在这里插入图片描述
在这里插入图片描述5.3 AtomicStampedReference(方法不存在do while )简单实战
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值