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

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

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

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

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

相关推荐
砍材农夫20 小时前
spring-ai 第四多模态API
java·人工智能·spring
她说..1 天前
Java 对象相关高频面试题
java·开发语言·spring·java-ee
watson_pillow1 天前
c++ 协程的初步理解
开发语言·c++
庞轩px1 天前
深入理解 sleep() 与 wait():从基础到监视器队列
java·开发语言·线程··wait·sleep·监视器
故事和你911 天前
洛谷-算法1-2-排序2
开发语言·数据结构·c++·算法·动态规划·图论
皮皮林5511 天前
面试官:ZSet 的底层实现是什么?
java
码云数智-大飞1 天前
C++ RAII机制:资源管理的“自动化”哲学
java·服务器·php
2601_949816581 天前
Spring+Quartz实现定时任务的配置方法
java
白毛大侠1 天前
理解 Go 接口:eface 与 iface 的区别及动态性解析
开发语言·网络·golang
李昊哲小课1 天前
Python办公自动化教程 - 第7章 综合实战案例 - 企业销售管理系统
开发语言·python·数据分析·excel·数据可视化·openpyxl