美文网首页
什么是CAS?

什么是CAS?

作者: 鳌拜的弟弟熬夜 | 来源:发表于2023-08-23 22:32 被阅读0次

    CAS(compare and swap)的缩写。Java利用CPU的CAS指令,同时借助JNI来完成Java的非阻塞算法,实现原子操作。其它原子操作都是利用类似的特性完成的。

    CAS有3个操作数:内存值V,旧的预期值A,要修改的新值B。

    当且仅当预期值A和和内存值V相同时,将内存值V修改为B,否则什么都不做。

    CAS的缺点:

        ●    CPU开销过大:在并发量比较高的情况下,如果许多线程反复尝试更新某一个变量,却又一直更新不成功,循环往复,会给CPU带来很大的压力。

        ●    不能保证代码块的原子性:CAS机制所保证的只是一个变量的原子性操作,而不能保证整个代码块的原子性。比如需要保证3个变量共同进行原子性的更新,就不得不使用synchronized了。

        ●    ABA问题:这是CAS机制最大的问题所在。

    相关文章

      网友评论

          本文标题:什么是CAS?

          本文链接:https://www.haomeiwen.com/subject/dkcmmdtx.html