JoJo的个人博客

记录精彩的程序人生

目录
Java内存模型
/  

Java内存模型

简述

Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。

主内存和工作内存

Java内存模型规定了所有的变量都存储在主内存Main Memory中,此外每条线程还有自己的工作内存Working Memory

线程的工作内存中保存了被该线程使用到的变量的主内存副本拷贝,线程对变量的所有操作(读取、赋值等)都必须在工作内存中进行,不能直接读写主内存中的变量。

并且,不同的线程之间也无法直接访问对方工作内存中的变量,线程间变量值得传递均需要通过主内存来完成,线程、主内存、工作内存关系如下图:

也可以把这里的主内存与工作内存概念与 JVM运行时数据区进行对应,主内存主要对应Java堆中的对象实例数据部分,工作内存对应于虚拟机栈中的部分区域。

参考文章

Java内存模型


标题:Java内存模型
作者:SunnySky
地址:https://www.tianyang.pub/articles/2020/06/04/1591261031280.html

评论