- 1
- 0
- 约3.45千字
- 约 6页
- 2026-10-09 发布于四川
- 举报
知识图谱:内存模型-›原子性、可见性、有序性-›volatile+可见性-›volatile+有序性(指令重排+
happens-before)-›
volatile+原子性-›volatile底层原理(内存屏障机制)
volatile+原子性:无法保证原子性。虽然某些特殊情况下可能表现出原子性效果,但若有人刻意用场景案例
声称volatile具有原子性,例如Oracle中对64位long型数值的操作,volatile
确保原子性,synchronized,lock,加锁
volatile底层原理:如何实现可见性保障?如何实现有序性保障?
(1)锁指令:volatile
保证可见性
对volatile修饰的变量执行写操作时,JVM会向CPU
发送一条lock前缀指令。CPU计算完成后会立即将值写回主内
存,同时由于MESI缓存一致性协议,各CPU会通过总线检测本地缓存数据是否被修改
如果发现其他处理器修改了某个缓存的数据,那么CPU就会将自己本地缓存的数据标记为失效,随后在该CPU上执
行的线程该变量时,会从主内存重新加载数据。
锁定前缀指令+MESI缓存一致性协议
(2)内存屏障:volatile
原创力文档

文档评论(0)