Java 内存模型
2019-03-12 10:01
190 查看
Java 内存模型(Java Memory Model,JMM)就是一种符合内存模型规范的,屏蔽了各种硬件和操作系统的访问差异的,保证了 Java 程序在各种平台下对内存的访问都能保证效果一致的机制及规范。
Java 内存模型规定了所有的变量都存储在主内存中,每条线程还有自己的工作内存。
线程的工作内存中保存了该线程中用到的变量的主内存副本拷贝,线程对变量的所有操作都必须在工作内存中进行,而不能直接读写主内存。
不同的线程之间也无法直接访问对方工作内存中的变量,线程间变量的传递均需要自己的工作内存和主存之间进行数据同步进行
而 JMM 就作用于工作内存和主存之间数据同步过程。它规定了如何做数据同步以及什么时候做数据同步。
特别需要注意的是,主内存和工作内存与 JVM 内存结构中的 Java 堆、栈、方法区等并不是同一个层次的内存划分,无法直接类比。
相关文章推荐
- 并发编程笔记(三):Java 内存模型(二)
- JAVA运行时内存模型
- Java 内存模型
- Java8内存模型—永久代(PermGen)和元空间(Metaspace)
- Java运行时的内存模型
- java 多线程编程之内存模型
- 深入理解Java String#intern() 内存模型
- Java 内存模型及GC原理 --经典
- 多线程的三大特性及java的内存模型
- Java高级特性之内存模型(一)
- Java 内存模型基本概念
- Java8内存模型—永久代(PermGen)和元空间(Metaspace)
- 【转】Java 内存模型及GC原理
- 线程安全>JVM内存模型>JAVA类加载
- Java 内存模型
- Java并发编程系列(一):Java并发内存模型
- Java 内存模型
- 【深入分析Java多线程】(3)Java多线程之内存模型
- JVM 内存分配模型概念和java中各种对象的存储 (补充)
- 理解 JVM:Java 内存模型(二)——volatile