并发编程 - CAS学习、理解

什么是CAS

CAS是现代处理器内部实现,用于解决在多线程环境下,通过对同一内存地址的值进行修改时,确保该操作,是原子的。
主要实现原理,在提交修改时,将该内存地址中原值进行取出,与传入的旧值进行比较,如果一致,那么将新值写入该内存地址。
在Java中,提供了三种类型操作类:

普通类型

AtomicInteger:用于对整形数据的修改

AtomicIntegerArray:用于对数组整形成员进行修改,每次修改时,需要额外提供数组索引下标。

引用类型

AtomicReference 用于修改该内存地址的引用 AtomicStampedReference 用于解决ABA问题而产生,在每次修改前,可以取出版本号进行比较。两个参数,第一个参数为泛型V,第二个参数为初始版本号

AtomicMarkableReference 也是用于解决ABA问题,不过第二个参数为布尔型,其关注该值有没有被修改过,与AtomicStampedReference的区别在于,AtomicStampedReference关心的是值被修改了几次

引用字段类型

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值