JMM内存模型JVM内存模型

Posted tianboblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JMM内存模型JVM内存模型相关的知识,希望对你有一定的参考价值。

JMM内存模型

  JMM即Java内存模型(Java Memory Model)。可以理解为它是一种抽象出来的硬件存储模型的规范。

  根据JMM的设计,系统存在一个主内存(Main Memory),Java中所有变量都储存在主存中,对于所有线程都是共享的。每条线程都有自己的工作内存(Working Memory),工作内存中保存的是主存中某些变量的拷贝,线程对所有变量的操作都是在工作内存中进行,线程之间无法相互直接访问,变量传递均需要通过主存完成。

 

 技术图片

 

             (图片来源于网络)

 

JVM内存模型

    主要包括:堆,虚拟机栈,本地方法栈,方法区和程序计数器。

技术图片

 

 

JMM内存模型与JVM内存模型的关系

  JMM定义了一种模型规范,而JVM就是基于这中规范实现的一种内存模型划分方式。

  jmm中的主内存、工作内存与jvm中的堆、栈、方法区等并不是同一个层次的内存划分,这两者基本上是没有关系的,如果两者一定要勉强对应起来,那从变量、主内存、工作内存的定义来看,主内存主要对应于Java堆中的对象实例数据部分,而工作内存则对应于虚拟机栈中的部分区域。从更低层次上说,主内存就直接对应于物理硬件的内存,而为了获取更好的运行速度,虚拟机(甚至是硬件系统本身的优化措施)可能会让工作内存优先存储于寄存器和高速缓存中,因为程序运行时主要访问读写的是工作内存。

 

 JVM内存结构

https://www.cnblogs.com/ityouknow/p/5610232.html

 

 



  

以上是关于JMM内存模型JVM内存模型的主要内容,如果未能解决你的问题,请参考以下文章

JVM细谈Java内存模型JMM

JMM内存模型

Java内存模型-JMM

JVM_12 JMM内存模型

JVM_12 JMM内存模型

JVM系列之JMM内存模型