Java 内存模型(JMM)是一种抽象的概念,并不真实存在,它描述了一组规则或规范,围绕原子性、有序性和可见性展开,通过这组规范定义了程序中各个变量(包括实例字段、静态字段和构成数组对象的元素)的访问方式。
线程中共享变量都存储在主内存中,每个线程都有个私有的本地工作内存,私有本地工作内存是jmm模型抽象概念,并不是真实存在的,她涵盖了缓存,协缓存区,寄存器以及其他的硬件和编译器的优化,本地内存中存储了该线程以读或写共享变量的拷贝的副本.
java内存模型 - 同步操作与规则:
Java内存模型解决的问题:
在多线程并发过程中,如何处理多线程读同步问题与可见性(多线程缓存与指令重排序)、多线程写同步问题与原子性(多线程竞争race condition)