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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 22款终端生产力工具,效率飞起!

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 译文:switowski.com/blog/favorite-cli-tools 程序员在搞开发时,终端CLI工具的…

    2021年6月26日
    76
  • linux用命令dpkg,Linux中的dpkg命令介绍

    linux用命令dpkg,Linux中的dpkg命令介绍导读dpkg是一个安装、构建、删除和管理Debian包的工具。所有源自“Debian”的linux的发行版都可使用dpkg命令,比如Ubuntu。语法:dpkg(选项)(参数)选项:-i:安装软件包-r:删除软件包-P:删除软件包的同时删除其配置文件-L:显示于软件包关联的文件–unpack:解开软件包-c:显示软件包内文件列表-configure:配置软件包参数:deb软件包列出deb软件包的…

    2022年5月20日
    26
  • CAN总线学习笔记(3)- CAN协议错误帧

    CAN总线学习笔记(3)- CAN协议错误帧依照瑞萨公司的《CAN入门书》的组织思路来学习CAN通信的相关知识,并结合网上相关资料以及学习过程中的领悟整理成笔记。好记性不如烂笔头,加油!1错误帧的帧结构在发送和接收报文时,总线上的节点如果检测出了错误,那么该节点就会发送错误帧,通知总线上的节点,自己出错了。错误帧由错误标志和错误界定符两个部分组成。主动错误标志:6个连续的显性位;被动错误标志:6个连续的隐性位;…

    2022年6月28日
    44
  • matlab中wavedec2函数,[转载]小波滤波器–wavedec2函数

    matlab中wavedec2函数,[转载]小波滤波器–wavedec2函数wavedec2函数:1.功能:实现图像(即二维信号)的多层分解.多层,即多尺度.2.格式:[c,s]=wavedec2(X,N,’wname’)[c,s]=wavedec2(X,N,Lo_D,Hi_D)(我不讨论它)3.参数说明:对图像X用wname小波基函数实现N层分解,这里的小波基函数应该根据实际情况选择,具体办法可以:db1、db2、……db45、haar.输出为c,s.c为各层分…

    2022年6月16日
    70
  • SpringMVC 工作原理

    SpringMVC 工作原理1.客户端请求提交到DispatcherServlet2.由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller3.DispatcherServlet将请求提交到Controller4.Controller调用业务逻辑处理后,返回ModelAndView5.DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图,并将结果显示到客户

    2022年5月14日
    37
  • 检测网络接口

    检测网络接口

    2021年12月30日
    40

发表回复

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

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