volatile缓存可见性实现原理

底层实现主要是通过汇编lock前缀指令,它会锁定这块内存区域的缓存(缓存行锁定),并写会到主内存

IA-32和Intel64架构开发者手册对lock指令的解释:

1)会将当前处理器缓存行的数据立即回写到系统内存

2)这个写回内存的操作会引起在其他cpu里缓存了该内存地址的数据无效(MESI协议),所以数据要回主内存读取

3)提供内存屏障功能,使lock前后指令不能重排序

 

 

 

 

posted @ 2021-05-18 14:21  阿U  阅读(100)  评论(0编辑  收藏  举报