volatile是多线程共享静态变量时,保证共享变量的可见性。
底层原理:
底层是通过lock前缀指令实现的,它会锁定该内存区域的缓存(缓存行锁定),并回写到主内存。
这个回写操作会使其他CPU里缓存了该内存地址的数据失效。
MESI缓存一致性协议
多个CPU从主内存中读取同一个数据到各自的高速缓存,当其中一个CPU修改了缓存里的数据,该数据会马上被同步回主内存,其他CPU通过总线嗅探机制可以感知到数据的变化从而将自己缓存里的数据失效。
对volatile关键字的理解以及底层实现原理?
最新推荐文章于 2023-07-08 08:00:00 发布