什么是cas,会出现哪些问题?

什么是cas
1.cas比较并交换,是多线程环境下保证数据一致性的机制
2.比较一个值和目前这个值是否一致,如果一致就把新值替换进去
3.如果不一致,就不做处理


会出现那些问题?
1.如果一个值原来是A,另一个线程将他改为B,然后又把他改回A,cas在比较的时候,仍然匹配A,这就是ABA问题
,可以通过版本号来解决这个问题,如果一致在更新
2.在cas机制中,如果线程不停的尝试cas操作而不成功,会一直进行自旋操作,这会浪费cpu的时间,这就是循环时间长问题,也叫做空等待
3.一个cas操作只能保证一个共享变量的原子操作,对于多个共享变量的操作需要加锁来保证原子性


cas空等待会造成那些问题?
1.cas空等待会造成cpu利用率飙高,资源浪费,死循环,访问系统的时候会出现卡顿

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值