前言

本文隶属于专栏《100个问题搞定Java虚拟机》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和参考文献请见100个问题搞定Java虚拟机

正文

Java内存模型规定了所有的变量都存储在主内存(Main Memory)中。

主内存可以类比成物理硬件的主内存,但此处仅是虚拟机内存的部分

每条线程还有自己的工作内存(Working Memory)。

工作内存可以类比成处理器高速缓存

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

不同的线程之间也无法直接访问对方工作内存中的变量,线程间变量值的传递均需要通过主内存来完成。

可以结合 volatile 的实现原理是什么? 来理解主内存和工作内存

主内存和工作内存是什么?相关推荐

  1. JVM:JVM内存划分、主内存、工作内存

    java内存模型中的主内存只是JVM内存的一部分.每条线程拥有自己的工作内存. 线程的工作内存中保存了该线程使用到的变量的主内存中的副本拷贝. java内存模型中的主内存.工作内存与之前JVM内存分布 ...

  2. Java多线程学习三十六:主内存和工作内存的关系

    CPU 有多级缓存,导致读的数据过期 由于 CPU 的处理速度很快,相比之下,内存的速度就显得很慢,所以为了提高 CPU 的整体运行效率,减少空闲时间,在 CPU 和内存之间会有 cache 层,也就 ...

  3. 主内存和工作内存交互

    Java 内存模型定义了 8 个操作来完成主内存和工作内存的交互操作. read:把一个变量的值从主内存传输到工作内存中 load:在 read 之后执行,把 read 得到的值放入工作内存的变量副本 ...

  4. JMM主内存和工作内存运行流程图

  5. Java中方法和工作内存的关系_JMM中工作内存和主内存的关系

    Java运行时的数据区域分布: 一.共享区域: (1)方法区:存储了每个类的信息(包括类的名称.方法信息.字段信息).静态变量.常量以及编译器编译后的代码等.其中常量池就是在此区域:记录了每一个类或者 ...

  6. Java---线程多(工作内存)和内存模型(主内存)分析

    转载自 https://www.cnblogs.com/chihirotan/p/6486436.html 首先解读Java内存模型(这里区别于JVM的内存模型,堆.栈.工作区) Java 内存模型来 ...

  7. java线程工作内存在栈中吗_JVM常见面试题解析

    前言 总结了JVM一些经典面试题,分享出我自己的解题思路,希望对大家有帮助,有哪里你觉得不正确的话,欢迎指出,后续有空会更新. 1.什么情况下会发生栈内存溢出. 思路: 描述栈定义,再描述为什么会溢出 ...

  8. 工作内存与主内存是什么,硬件层面的存储架构是什么样,线程的实现原理是什么

    工作内存与主内存 java内存模型并不真正的存在,是一种规则规定了程序中各个变量的访问方式.线程运行的时候,每个线程创建时候jvm都会为其创建一个工作内存,java的所有的变量都存放在主内存中是共享的 ...

  9. JMM内存可见性问题-工作内存读写主存时机

    工作内存和主存刷新时机是个很有意思的问题,网上有不少文章,但是写的都不是很全,所以这里亲自下场用代码实验 一.内存可见性: 内存可见性是并发编程中容易忽略的一个问题,但我认为他是一个非常重要的问题,只 ...

最新文章

  1. 《算法技术手册》一2.4.6 二次方的算法性能
  2. 融合视频目标检测与单目标、多目标跟踪,港中文开源一体化视频感知平台 MMTracking...
  3. 朴素贝叶斯法(二)——基本方法
  4. 人工智能AI和机器学习ML对量化交易领域的影响
  5. Visual Studio 2013开发 mini-filter driver step by step 获取可执行文件名称 - 实现process monitor的一个功能 (10)
  6. html5基础知识点盒子
  7. LVS入门篇(五)之LVS+Keepalived实战
  8. .net 手机问卷 源码_当.Net成为大厂门槛代码小白该何去何从?
  9. java中IO写文件工具类
  10. oracle数据库索引
  11. 用matlab画声偶级辐射,matlab结题报告(电偶极子的辐射场)
  12. git把项目上传到github的常用命令
  13. Mysql存储过程和函数区别介绍
  14. 流程图基础绘制方法和流程图制作软件功能详解
  15. 马斯克要买地当「城主」/ 苹果手表引入ChatGPT/ 小鹏辟谣多名核心高管离职…今日更多新鲜事在此...
  16. 机器学习笔记之马尔可夫链蒙特卡洛方法(三)MH采样算法
  17. Python3 创建文件夹
  18. 基于springboot的手办定制销售系统毕业设计源码031800
  19. 华二紫竹2021年高考成绩查询,2019年华二紫竹升学数据分析!
  20. SpringAOP实现多数据源切换

热门文章

  1. 爬虫-漫画喵的100行逆袭
  2. 2021-07-02软件构造学习中遇到的问题
  3. 工控网络安全防护分析与建议
  4. 关于TopoJSON以及制作方法
  5. HTTP超文本传输协议详解
  6. 微搭低代码小程序模板体验
  7. SCardTransmit 返回 SCARD_W_RESET_CARD
  8. 数论及其应用——同余式定理
  9. 如何在Visual Paradigm中创建流程图?
  10. 蓝牙HID——将android设备变成蓝牙鼠标/触控板(BluetoothHidDevice)