Java易失性和缓存一致性

如果在硬件级别实现高速缓存一致性,为什么我们需要volatile呢? 任何核心/处理器都应该获得最新的价值?

或者它是完全处理不同的问题?

高速缓存一致性可以在处理器级实现,但是,除非处理器内存模型保证顺序一致性(在大多数现代体系结构中不是这种情况),否则只有在您要求时才能获得高速缓存一致性。

这就是volatile的用途:它要求JVM生成相关的机器指令,这些指令将要求处理器将其高速缓存与主存储器同步。