volatile与JMM(二)

简介: 问:volatile凭什么可以保证可见性和有序性答: 内存屏障

什么是内存屏障

image.png

内存屏障的分类

粗分为两种:

  1. 读屏障

在读指令之前插入读屏障,让工作内存或者cpu高速缓存数据失效,重新去主内存中获取罪行的数据

  1. 写屏障

在写指令之后插入写屏障,强制把写缓冲区的数据刷回到主内存

在nusafe.class中可以查看源码。

image.png

细分为四种:

image.png

目录
相关文章
|
5月前
|
缓存 安全 Java
简单了解下JMM解决什么问题
Java内存模型(JMM)是Java语言规范的一部分。JMM通过“happens-before”规则和内存屏障等机制,确保在多线程程序中,各线程对共享变量的操作行为符合预期。
50 3
|
7月前
|
存储 缓存 Java
深入理解JMM
深入理解JMM
208 2
|
8月前
|
Java 编译器
多线程(volatile)
多线程(volatile)
35 0
|
8月前
|
缓存 Java 编译器
JMM内存模型 volatile关键字解析
JMM内存模型 volatile关键字解析
53 0
|
缓存 Java 编译器
|
缓存 Java 编译器
05.深入理解JMM和Happens-Before
大家好,我是王有志。今天我们一起来学习Java并发编程中最重要的两个理论知识JMM和Happens-Before原则。
137 1
05.深入理解JMM和Happens-Before
|
Java
浅谈volatile
浅谈volatile
76 0
|
存储 缓存 Java
关于JMM的理解
JMM是java内存模型,它描述的是和多线程相关的一组规范。通过这组规范定义了程序中对各个变量的访问方式。保证了不同jvm运行并发程序的结果的一致性和可靠性。
114 0
|
存储 SQL 缓存

热门文章

最新文章