volatile的指令禁重排(六)

简介: volatile的指令禁重排

volatile的指令禁重排

重排序

image.png

案例

image.png

volatile有关的禁止指令重排的行为

image.png

四大屏障的插入情况

  1. 在每一个volatile写操作前面插入一个storestore屏障,storestore屏障可以保证在volatile写之前,其前面的所有普通写操作都已经刷新到主内存。
  2. 在每一个volatile写操作后面插入一个storeload屏障,storeload屏障的作用是避免volatile写与后边的有可能的volatile读写操作重排序。
  3. 在每一个volatile读操作后面插入一个loadload屏障,loadload屏障用来禁止把上边的volatile读与下边的普通读重排序。
  4. 在每一个volatile读操作后面插入一个loadstore屏障,loadstore屏障用来禁止处理器吧上面的volatile读与下面的普通读重排序。

案例

image.png

案例说明

image.png

目录
相关文章
|
设计模式 C# C++
责任链模式(Chain of Responsibility Pattern)
责任链模式是一种行为型设计模式,允许多个对象按顺序处理请求,直到某个对象处理为止。适用于多个对象可能处理同一请求的场景,如请假审批流程。优点是灵活性高、降低耦合,但责任链过长可能影响性能。
|
设计模式 监控 Java
Java多线程基础-11:工厂模式及代码案例之线程池(一)
本文介绍了Java并发框架中的线程池工具,特别是`java.util.concurrent`包中的`Executors`和`ThreadPoolExecutor`类。线程池通过预先创建并管理一组线程,可以提高多线程任务的效率和响应速度,减少线程创建和销毁的开销。
1062 2
|
11月前
|
JavaScript 前端开发 算法
高效工作流:用Mermaid绘制你的专属流程图;如何在Vue3中导入mermaid绘制流程图
mermaid是一款非常优秀的基于 JavaScript 的图表绘制工具,可渲染 Markdown 启发的文本定义以动态创建和修改图表。非常适合新手学习或者做一些弱交互且自定义要求不高的图表 除了流程图以外,mermaid还支持序列图、类图、状态图、实体关系图等图表可供探索。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
存储 安全 容器
ConcurrentHashMap底层详解
ConcurrentHashMap底层详解
651 2
ConcurrentHashMap底层详解
|
关系型数据库 MySQL
深入理解SELECT ... LOCK IN SHARE MODE和SELECT ... FOR UPDATE
深入理解SELECT ... LOCK IN SHARE MODE和SELECT ... FOR UPDATE
956 0
|
IDE 开发者 iOS开发
京东开源的 JD-Hotkey:高效热键管理的技术巅峰
【10月更文挑战第5天】在快节奏的工作与学习中,提高操作效率是每位技术爱好者不懈追求的目标。今天,我们将深入探讨京东开源的 JD-Hotkey 项目,它不仅是一个强大的热键管理工具,更是我们在日常工作中提升生产力的秘密武器。通过本文,你将了解到 JD-Hotkey 的核心功能、技术亮点以及在实际应用中的卓越表现,一同感受其带来的高效与便捷。
805 4
|
监控 Java 应用服务中间件
Sentinel原理及实践
Sentinel原理及实践
641 1
|
存储 安全 算法
史上最全的Java容器集合之ConcurrentHashMap1.8(源码解读)(一)
史上最全的Java容器集合之ConcurrentHashMap1.8(源码解读)(一)
646 0
|
存储 缓存 Java
《SpringBoot系列十三》:图文精讲@Conditional条件装配实现原理
《SpringBoot系列十三》:图文精讲@Conditional条件装配实现原理
450 0
《SpringBoot系列十三》:图文精讲@Conditional条件装配实现原理

热门文章

最新文章