参考 https://blog.youkuaiyun.com/chenaima1314/article/details/78723265
cpu与内存的工作架构。cpu的各个核心有自己的寄存器(存储核心计算的临时结果)与缓存(缓冲内存与cpu核心处理速度的差异),各个核心共享同一块主内存。

JVM的线程模型,这里的工作内存就是指寄存器与缓存,主内存就是主存。也就是了解JVM的线程模型与 CPU-内存架构的映射。

除了线程模型,还缺内存模型,及其与 CPU-内存架构 的映射。 这样一来,线程模型-内存模型的关联也有了解释。栈是线程私有的,线程之间共享堆。

volatile 关键字作用
首先volatile仅保证了给工作内存的副本赋值时,同时写入到内存中,这个过程是原子的。
也就是从工作内存赋值指令assign,到传输值到内存store并写入write,这三个操作是原子操作。
</

博客探讨了为什么 volatile 关键字无法确保线程安全,主要涉及 CPU-内存架构、JVM 线程模型和内存模型。内容解释了 volatile 的原子性以及 MESI 缓存一致性协议,通过实例展示了在特定情况下,volatile 无法阻止错误的并发行为,从而导致线程不安全的问题。
最低0.47元/天 解锁文章
3067

被折叠的 条评论
为什么被折叠?



