如果缓存一致性是在硬件级别实现的,为什么我们需要 volatile?无论如何,任何核心/处理器都应该获得最新值吗?
还是它在处理完全不同的问题?
最佳答案
缓存一致性可以在处理器级别实现,但是,除非 processor memory model保证顺序一致性(大多数现代架构都不是这种情况),只有在您要求时才能获得缓存一致性。
这就是 volatile 的用途:它要求 JVM 生成相关的机器指令,这些指令将要求处理器将其缓存与主内存同步。
关于Java volatile 和缓存一致性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21129018/