, 会将需要操作的数据加入到 CPU 缓存 中 ;
CPU 缓存分为 L1 , L2 , L3 ,
3
个级别的缓存 , 如下图所示 ;
CPU 执行线程时 , 不直接操作内存中的数据 , 而是通过...CPU 缓存进行处理 ;
JMM ( Java Memory Model - Java 内存模型 ) 参考了 CPU 缓存模型 , CPU 都是多核的 , 每个核中都有 L1 和 L2 缓存 , L3...缓存整个 CPU 的所有核心共同使用 ;
Java 内存模型只是一种规范 ;
Java 虚拟机运行时内存 , 是不同的虚拟机实现的不同的内存使用方式 ;
每种虚拟机的底层实现都是不同的 ;
Java...线程 运行时 , 每个 Java 线程都配套一个 工作内存 , 然后工作内存从 主内存 中获取数据 , 主内存被所有工作内存共享 ;
工作内存 就是 线程的 本地内存 , 其中存储的是主内存中的 变量副本...L2 缓存 , 主内存 相当于 CPU 中的 L3 缓存 ;
如果多个线程同时对 主内存 中的同一个变量进行修改 , 变量的值被不同线程按照不同顺序进行改变 , 主线程中的这个变量是 线程不安全的 ;