当前位置:网站首页>详解JMM
详解JMM
2022-07-01 21:43:00 【键盘歌唱家】
一、计算机硬件存储体系
CPU的运行并不是直接操作内存而是先把内存里边的数据读到缓存,而内存的读和写操作的时候就会造成不一致的问题。JVM规范中试图定义一种Java内存模型(java Memory Model,简称JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。
二、简介
1.JMM简介
JMM(Java内存模型Java Memory Model,简称JMM)本身是一种抽象的概念并不真实存在它仅仅描述的是一组约定或规范,通过这组规范定义了程序中(尤其是多线程)各个变量的读写访问方式并决定一个线程对共享变量的写入何时以及如何变成对另一个线程可见,关键技术点都是围绕多线程的原子性、可见性和有序性展开的。
原则:JMM的关键技术点都是围绕多线程的原子性、可见性和有序性展开的。作用如下:
1.通过JMM来实现线程和主内存之间的抽象关系。
2.屏蔽各个硬件平台和操作系统的内存访问差异以实现让Java程序在各种平台下都能达到一致的内存访问效果。
2.缓存行的概念
一个多核cpu的每个核都自带一二级缓存,所有核都共享一个三级缓存。当把主内存的数据写入缓存时,也会顺便将附近的数据也写进去。这个写入的范围称为缓存行(大小64字节&#
边栏推荐
- 基础—io密集型计算和cpu密集型计算
- 100年仅6款产品获批,疫苗竞争背后的“佐剂”江湖
- 【MySQL】索引的创建、查看和删除
- Simple interactive operation of electron learning (III)
- 手动实现function isInstanceOf(child,Parent)
- The correct way to set the bypass route
- 地图其他篇总目录
- Talking from mlperf: how to lead the next wave of AI accelerator
- Pytest collection (2) - pytest operation mode
- PMP证书真的有用吗?
猜你喜欢
随机推荐
基于K-means的用户画像聚类模型
Show member variables and methods in classes in idea
The difference between NiO and traditional IO
Matlab traverses images, string arrays and other basic operations
MQ学习笔记
Classify boost libraries by function
Unity uses SQLite
MySQL清空表数据
Spark interview questions
十三届蓝桥杯B组国赛
Aidl basic use
Pytest collection (2) - pytest operation mode
Interview question: what is the difference between MySQL's Union all and union, and how many join methods MySQL has (Alibaba interview question) [easy to understand]
基于YOLOv5的口罩佩戴检测方法
【商业终端仿真解决方案】上海道宁为您带来Georgia介绍、试用、教程
MIT|256KB 内存下的设备上训练
String类型转换BigDecimal、Date类型
Burpsuite simple packet capturing tutorial [easy to understand]
pytest合集(2)— pytest運行方式
小 P 周刊 Vol.11