如果一个变量被 volatile 修饰,这对它的线程安全性有什么影响?请解释其底层实现原理。
考察说明
考察对 volatile 语义与线程安全边界、底层内存模型实现的理解
回答思路
- 指出 volatile 保证可见性,不保证原子性与复合操作的线程安全
- 说明 volatile 防止指令重排序的规则及其适用场景(如状态标志)
- 能结合底层指令(如 mov)说明写时立即刷新主内存、读时从主内存获取的机制
- 正确识别 volatile 不适用于 i++ 等非原子操作,并建议使用 synchronized 或原子类
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。