栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java内存模型

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java内存模型

内存模型产生背景

由于内存与cpu的缓存运算速度有几个数量级的差距,所以如果将运算数据加载到cpu的缓存中运算提高运算速度,然后结束后再从缓存同步回内存之中。可是这样带来了一个问题 缓存一致性。每个处理器核心都有自己的高速缓存,处理变量时会拷贝一份主存中的变量到各自核心的高速缓存中。当各自核心处理任务时。将会导致各自的缓存数据不一致。为此,要制定一些协议,各个核心在读写时要根据协议进行操作,来维护缓存的一致性

cpu乱序执行问题

​ cpu为了提高运算效率,会对代码进行乱序执行,然后对乱序执行的结果重组。这与代码顺序执行的结果是一样的。可是在一个核的计算任务依赖另一个核计的算任务的中间结果,那么处理器最终得出的结果和我们期望得到的结果可能会大不相同。

 Java内存模型

可以理解Java内存模型就是上述问题的抽象。多个cpu核心抽象成多个线程,主内存抽象成Java的主内存,cpu高速缓存抽象成Java线程的各自内存。 这样我们就好理解了。

主内存:Java内存模型规定了所有变量都存储在主内存( 每条线程都有自己的工作内存)

工作内存:每条线程都有自己的工作内存,又称本地内存,线程的工作内存中保存了该线程使用到的变量在主内存中的共享变量的副本拷贝。

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/831494.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号