Java并发面试题:(五)volatile关键字

volatile 是什么

一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义:

1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线

程来说是立即可见的,volatile关键字会强制将修改的值立即写入主存。

2)禁止进行指令重排序。

volatile的作用

volatile作用

Volatile 一般用于 状态标记量 和 单例模式的双检锁

volatile的一个重要作用就是和CAS结合,保证了原子性,详细的可以参见java.util.concurrent.atomic 包下的类,比如 AtomicInteger 。

相关推荐
Flittly8 小时前
【AgentScope Java新手村系列】(16)从RAG到多路检索
java·spring boot·spring
Ruihong8 小时前
Vue withDefaults 转 React:VuReact 怎么处理?
vue.js·react.js·面试
小兔崽子去哪了8 小时前
Java 生成二维码解决方案
java·后端
kyriewen9 小时前
别再这样写 async/await 了:我在 Code Review 中见过最多的 8 个错误
前端·javascript·面试
人活一口气12 小时前
从JVM调优到MCP协议:Java全栈技术体系深度总结与企业级架构实践
java·spring boot
烬羽14 小时前
字符串算法入门:从反转字符串到回文判断,面试不再慌
算法·面试
云技纵横14 小时前
一个 @Async,把 @Transactional 的事务边界打穿了
后端·面试
想要成为糕糕手14 小时前
Harness Engineering:大模型时代的“马鞍”——从记忆层开始,让AI真正为你所用
面试·ai编程·claude
NE_STOP14 小时前
Vibe Coding -- 完整项目案例实操
java
荣码14 小时前
GraphRAG:普通RAG只能回答"点"的问题,我踩了4个坑才搞懂
java·python