Java学习总结(1.1.4) 内存屏障和CPU缓存
精贴
置顶
3201 0
作者:
发布时间: 2020-03-18 11:06:51
内存屏障和CPU缓存
CPU -> L1 Cache -> L2 -> L3 -> 内存
MESI协议,它规定每条缓存有个状态位,同时定义了下面四个状态:
修改态( Modified)-此 cache行已被修改过(脏行),内容已不同于主存,为此 cache专有;
专有态( Exclusive)ー此 cache行内容同于主存,但不出现于其它 cacher中;
共享态( Shared)-此 cache行内容同于主存,但也出现于其它 cache中;
无效态( Invalid)ー此 cache行内容无效(空行)。
处理器提供了两个内存屏障指令( Memory Barrier)用于解決上述两个问题
写内存屏障( Store Memory Barrier):在指令后插入 Store Barrier,能让写入缓存中的最新数据更新写入主内存,让其他线程可见。
强制写入主内存,这种显示调用,CPU就不会因为性能考虑而去对指令重排
标签:
- 上一篇: Java学习总结(1.1.3) 线程中止
- 下一篇: Java学习总结(1.1.5) 线程通信
每日一句
决定我们成为什么样人的,不是我们的能力,而是我们的选择。
博客分组
标签云
- 最近综合
- 张雪峰留给普通人的12句话 03.30
- 一个孩子懦弱残酷的真相 03.26
- 情绪巨婴是什么 12.18
- 普通蛋糕做法 05.31
- 玉米烤肠芝士面包做法 05.31
- Mysql安装教程 - 绿色版 06.18
- 我们学习知识为什么总是忘记呢?【学习金字塔】 05.12
- Typora开发版⽆法使⽤解决⽅法 05.04
- 随机综合
- eclipse 快捷键大全_最有用快捷键整理 08.18
- Java学习总结(2.1.3) NIO非阻塞网络编程三大核心理念 04.17
- Java学习总结(1.1.1) Java程序运行原理分析 03.17
- Typora开发版⽆法使⽤解决⽅法 05.04
- 电商运营主要做什么? 10.08
- 鸿蒙OS代码正式开源 09.11
- Java学习总结(1.1.2) 线程状态 03.17
- php 用万网空间,提交数据中出现反斜杠问题 04.13