JMM模型_kmv模型

JMM模型_kmv模型1.JMM介绍: javamemorymodel,java内存模型2.JMM内存模型的组成:主内存(共享内存):*heap堆:存放所有对象的实例;堆不存放对象引用和基本数据类型,只存放对象实例本身*methodarea方法区(也叫静态区):方法区存放Class类对象以及一些static,final变量;方法区的数据都是唯一的,常量池也在方法区中工作内存(线程私有内存,每个…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1.JMM介绍:
	java memory model,java内存模型
2.JMM内存模型的组成:
主内存(共享内存):
* heap堆: 存放所有对象的实例;堆不存放对象引用和基本数据类型,只存放对象实例本身
* method area方法区(也叫静态区): 方法区存放Class类对象以及一些static,final变量;方法区的数据都是唯一的,常量池也在方法区中
工作内存(线程私有内存,每个线程对应一个工作内存):
* program counter register(程序计数器): 每个线程都有一个程序计数器,代表当前线程的字节码行号指示器,比如cpu切换时需要用程序计数器来完成
* Java Virtual Machine Stacks(虚拟机栈): java方法执行的内存模型,每次有方法进栈执行,都会创建一个栈桢,来保存方法中的所有变量;栈桢保存基本数据类型是保存具体的值,保存引用数据类型保存主内存引用;当方法真正需要用到引用数据类型的变量值,就会去主内存中读取变量副本到栈桢,操作完毕后,再更新回主内存
* native method stacks(本地方法栈): 类似于虚拟机栈,但是本地方法栈是指使用java调用操作系统语言(C,C++)的方法,通常不需要我们关心
3.JMM线程通信:
* 共享变量:
	每一个线程的工作内存(程序计数器,虚拟机栈,本地方法栈)都会从主内存(方法区,)中保存一份它所需要用到的变量的副本,当它对变量操作完毕后,就会将修改后的数据更新到主内存中(存在并发问题)
* 消息传递: wait()/notify()
4.Java内存模型与硬件内存架构的关系:
硬件内存架构分为:cpu寄存器(存储数据),cpu缓存区(缓存数据),cpu主内存(从硬件架构的角度看,主内存的数据来源于整个jvm,即jvm的主内存和工作内存都是硬件架构的主内存);
	Java中的线程实际上是一个轻量级的进程lwp(light weight process),jvm将lwp映射为操作系统cpu的内核线程来处理数据;cpu内存线程处理cpu寄存器的数据,而cpu寄存器的数据优先从cpu缓存中获取(也叫缓存命中率),如果cpu缓存没有,再从主内存获取数据 

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197065.html原文链接:https://javaforall.net

(0)
上一篇 2025年9月14日 下午5:43
下一篇 2025年9月14日 下午6:15


相关推荐

  • Windows 8或不再支持1394接口「建议收藏」

    Windows 8或不再支持1394接口「建议收藏」根据上月底泄露的Windows8开发规划,微软新操作系统将提供对USB3.0、蓝牙3.0+HS等新外设接口的支持,而“古老”的IEEE1394接口却没有丝毫提及。有媒体因此猜测,Windows8很可能将放弃对IEEE1394的支持。  IEEE1394接口标准于1995年颁布,由苹果主持推动,但其中的大部分技术标准来自德州仪器、索尼、DEC、IBM、意法半导体等企…

    2025年7月18日
    8
  • NO6 数据库

    NO6 数据库1 请问要跳转到这个控制器文件 CommonContro cs 的 Validate 方法链接地址应该怎么写 Common validate2 创建一个数据库的 sql 语句怎么写 CREATEDataBa 数据库名 3 创建一张表的 sql 语句怎么写 CREATETABLE 语句用于创建数据库中的表 4 向表 UserInfo 插入一条记录怎

    2026年3月18日
    1
  • 指示函数(indicator function)

    指示函数(indicator function)1 计数器指示函数表示其中有哪些元素属于某一子集的次数 及满足某一断言或条件的统计 比如 HammingLoss 其中 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 2 二维的离散指示函数 assignmentso 0 1 jxij 1 jxij 1 行和为 1 X xij 也可称为一种

    2026年3月17日
    1
  • Rocksdb Compaction源码详解(二):Compaction 完整实现过程 概览

    Rocksdb Compaction源码详解(二):Compaction 完整实现过程 概览Rocksdb 的 compaction 流程可以说是比较核心的流程了 它的存在除了保证不同 sst 文件之间的 key value 之间的有序性 数据的压缩存储 清理过时数据之外 还需要在存储细节上做一些优化来进一步提升 LSMtree 的读性能 Rangetombsto 的构造 提升了 deleteRange 区间的 key value 的判断效率 filterblock 的创建 提升判断一个 key 是否存在的概率 indexblock 的创建 支持二分查找和 hashmap 的查找 提升针对普通 key value 的查找性

    2026年3月18日
    3
  • 探秘X86架构CPU流水线[通俗易懂]

    探秘X86架构CPU流水线[通俗易懂]http://ee.ofweek.com/2013-07/ART-11001-2805-28704745.html导读:CPU是如何工作的呢?一条指令执行需要多长时间?当我们讨论某个新款处理器拥有12级流水线还是18级流水线,甚至是更深的31级流水线时,这到些都意味着什么呢?作为程序员,CPU在我们的工作中扮演了核心角色,因此了解处理器内部的工作方式对程序员来说不无裨益。  CPU…

    2022年8月20日
    22
  • 腾讯元宝更新:搭载最新DeepSeekV3模型和混元T1正式版

    腾讯元宝更新:搭载最新DeepSeekV3模型和混元T1正式版

    2026年3月13日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号