volatile关键字底层实现原理主要是通过汇编语言的lock前缀指令实现,锁定这块内存区域的缓存区(缓存行锁定,总线嗅探机制)并写回到主存,具体表现为:
1、会将当前处理器的缓存行的数据立即写回到主内存
2、这个回写操作会引起其他cup的缓存行失效,想要获取该值cup必须从新从主内存获取最新的值(MESI缓存一致性协议,该协议是其中一种保证数据可见性的失效原理)
3、提供内存屏障功能,使用lock前后指令不能重排序
volatile关键字底层实现原理主要是通过汇编语言的lock前缀指令实现,锁定这块内存区域的缓存区(缓存行锁定,总线嗅探机制)并写回到主存,具体表现为:
1、会将当前处理器的缓存行的数据立即写回到主内存
2、这个回写操作会引起其他cup的缓存行失效,想要获取该值cup必须从新从主内存获取最新的值(MESI缓存一致性协议,该协议是其中一种保证数据可见性的失效原理)
3、提供内存屏障功能,使用lock前后指令不能重排序