码迷,mamicode.com
首页 > 其他好文 > 详细

JMM内存模型、JVM内存模型

时间:2020-05-26 10:32:42      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:方式   main   存储   共享   方法   包括   速度   image   高速缓存   

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内存模型

标签:方式   main   存储   共享   方法   包括   速度   image   高速缓存   

原文地址:https://www.cnblogs.com/tianboblog/p/12963846.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!