当前位置:   article > 正文

CAS 原理和缺陷_介绍下 cas,存在什么问题

介绍下 cas,存在什么问题

JDK1.6 以后 JVM 对 synchronize 锁机制作了不少优化,加入了偏向锁和自旋锁,在锁的底层实现中或多或少的都借助了 CAS 操作,其实 Java 中 java.util.concurrent 包的实现也是差不多建立在 CAS 之上,可见 CAS 在 Java 同步领域的重要性。

CAS 是 Compare and Swap 的简写形式,可翻译为:比较并交换。用于在硬件层面上提供原子性操作。其实现方式是基于硬件平台的汇编指令,就是说 CAS 是靠硬件实现的,JVM 只是封装了汇编调用。比较是否和给定的数值一致,如果一致则修改,不一致则不修改。

CAS 案例分析
AtomicInteger 的原子特性就是 CAS 机制的典型使用场景。 其相关的源码片段如下:
private volatile int value;

public final int get() {
return value;
}

public final int incrementAndGet() {
for (;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/311382
推荐阅读
相关标签