SE8-CAS基本原理

1. i++不是原子操作


2. 解决方案 --CAS机制

 


三个值:

  1. 旧值 : 每次从主内存中获取时,记录该值。

  2. 新值:执行++后 该值为新值

  3. 要修改的值:刷新到主内存时,获取的值。

1. 每次存(刷新到主内存时)的时候,比较旧值和要修改的值
2. 如果为true,证明没有别的线程修改过,直接将新值刷新到主内存即可
3. 如果为false,证明已经被别的线程修改过,重新获取主内存的值。
     1.每次获取主内存值,都将其记录为旧值
     2.++后的值 记录为新值
     3.存之前判断 旧值和要修改的值(来自于当前的主内存)是否相等
     4.如果相等,说明没有别的线程修改,直接将新值覆盖主内存的值
     5.如果不等,证明已经被别的线程修改过,重新获取主内存的值。
         .......

该机制被称为乐观锁,只对修改操作做判断。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值