【吊打面试官系列】Java高并发篇 - volatile 变量和 atomic 变量有什么不同?

大家好,我是锋哥。今天分享关于 【volatile 变量和 atomic 变量有什么不同?】面试题,希望对大家有帮助;

volatile 变量和 atomic 变量有什么不同?

Volatile 变量可以确保先行关系,即写操作会发生在后续的读操作之前, 但它并不能保证原子性。例如用 volatile 修饰 count 变量那么 count++ 操作就不是原子性的。

而 AtomicInteger 类提供的 atomic 方法可以让这种操作具有原子性如getAndIncrement()方法会原子性的进行增量操作把当前值加一,其它数据类型和引用变量也可以进行相似操作。

相关推荐
失散139 分钟前
分布式专题——9 Redis7底层数据结构解析
java·数据结构·redis·分布式·缓存·架构
馨谙14 分钟前
设计模式之单例模式大全---java实现
java·单例模式·设计模式
程序员TNT17 分钟前
Shoptnt 安全架构揭秘:JWT 认证与分布式实时踢人方案
java·redis·分布式·架构
野生的编程萌新20 分钟前
【C++深学日志】从0开始的C++生活
c语言·开发语言·c++·算法
水无痕simon22 分钟前
3 水平分表
java·数据库
野生程序员y30 分钟前
深入解析Spring AOP核心原理
java·后端·spring
阿萨德528号36 分钟前
ZooKeeper Java客户端与分布式应用实战
java·zookeeper·java-zookeeper
死也不注释41 分钟前
【Unity UGUI 交互组件——Dropdown(TMP版本)(10)】
java·unity·交互
狼爷1 小时前
凌晨 4 点的线上 CPU 告警:一场历时 4 小时的故障排查与架构优化全记录
java
渣哥1 小时前
Java 线程池中的 submit 和 execute 有何不同
java