CAS的demo样例(二)

简介: CAS的demo样例

demo

public class CASDemo {
    public static void main(String[] args) {
        AtomicInteger atomicInteger = new AtomicInteger(5);
        System.out.println(atomicInteger.compareAndSet(5,2022)+"\t"+atomicInteger.get());
        System.out.println(atomicInteger.compareAndSet(5,2022)+"\t"+atomicInteger.get());
    }
}

结果

image.png

底层调用:

image.png

为什么cas可以不加锁保证数据一致性

硬件级别的保证

image.png

源码分析

image.png

image.png

调用native方法。

目录
相关文章
|
5月前
|
JSON 运维 Go
Go 项目配置文件的定义和读取
Go 项目配置文件的定义和读取
|
5月前
|
Java Maven C++
【Azure Developer】记录一次使用Java Azure Key Vault Secret示例代码生成的Jar包,单独运行出现 no main manifest attribute, in target/demo-1.0-SNAPSHOT.jar 错误消息
【Azure Developer】记录一次使用Java Azure Key Vault Secret示例代码生成的Jar包,单独运行出现 no main manifest attribute, in target/demo-1.0-SNAPSHOT.jar 错误消息
106 0
|
Java
Java 字符串的操作集合(记录日常学习的demo)(一)
Java 字符串的操作集合(记录日常学习的demo)(一)
71 0
|
8月前
|
编译器 C++ 开发者
【C/C++】C/C++编程——第一个 C++ 程序:HelloWorld
【C/C++】C/C++编程——第一个 C++ 程序:HelloWorld
98 0
在案例demo 里超过100条数据代码怎么写
在案例demo 里超过100条数据代码怎么写
54 1
go 判断两棵树内容是否一致
go 判断两棵树内容是否一致
52 0
|
Java
Java 字符串的操作集合(记录日常学习的demo)(二)
Java 字符串的操作集合(记录日常学习的demo)(二)
110 1
while、do...while、死循环 演示 demo
while、do...while、死循环 演示 demo
128 0
while、do...while、死循环 演示 demo
|
存储 缓存 算法
Go --- GCache缓存官方例子
Go --- GCache缓存官方例子
|
Java 开发工具 Windows
三、实现第一个HelloWorld
基于springboot框架实现第一个HelloWorld
88 0
三、实现第一个HelloWorld