volatile禁止指令重排的原理_警告禁止指令提示颜色顺序

volatile禁止指令重排的原理_警告禁止指令提示颜色顺序Volatile禁止指令重排什么是指令重排?你写的程序,计算机并不是按照你写的那样去执行的。源代码->编译器优化的重排->指令并行可能会重排->内存系统可能会重排->执行处理器在进行指令重排的时候,考虑,数据之间的依赖性!指令重排不会造成影响的例子intx=1;//1inty=2;//2x=x+5;//3y=x*x;//4我们所期望的:1234执行的时候可能会变成21341324但是不可能是4321

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

Volatile禁止指令重排

什么是指令重排?

你写的程序,计算机并不是按照你写的那样去执行的。
源代码 -> 编译器优化的重排 -> 指令并行可能会重排 -> 内存系统可能会重排 -> 执行

处理器在进行指令重排的时候,考虑,数据之间的依赖性!

指令重排 不会造成影响的例子
int x = 1;//1
int y = 2;//2
x = x + 5;//3
y = x * x;//4

我们所期望的: 1234 执行的时候可能会变成 2134 1324 

但是不可能是 4321

指令重排 可能造成影响的例子 : abxy默认值都是0

线程A 线程B
x=a y=b
b=1 a=2

正常的结果: x=0 y=0

线程A 线程B
b=1 a=2
x=a y=b

指令重排导致的异常结果 :x=2 y=2

Volatile 可以避免指令重排

内存屏障 CPU指令 作用:
1.保证特定的操作的执行顺序!
2.保证某些变量的内存可见性(利用这些特性volatile实现了可见性)

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180877.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月17日 下午8:16
下一篇 2022年10月17日 下午8:16


相关推荐

  • 网线之RJ45接口定义及网线线序[通俗易懂]

    网线之RJ45接口定义及网线线序[通俗易懂]RJ45接口定义常见的RJ45接口有两类:用于以太网网卡、路由器以太网接口等的DTE类型,还有用于交换机等的DCE类型。DTE我们可以称做“数据终端设备”,DCE我们可以称做“数据通信设备”。从某种意义来说,DTE设备称为“主动通信设备”,DCE设备称为“被动通信设备”。当两个类型一样的设备使用RJ45接口连接通信时,必须使用交叉线连接。这个可以从如下的RJ45DTE类型引脚定义

    2025年12月14日
    7
  • 流体力学复习

    流体力学复习流体力学 连载 ing NJUAS2021 期中易考概念题 1 流体的性质易流动性流体静止时 只有法向应力而没有切向应力黏性 流体层之间存在相对运动或切形变时 流体会反抗这种相对运动或切形变理想流体不计粘性 没有抗切形变性压缩性不可压流体散度为 0 考点一 黏性与温度的关系随着温度升高 气体黏性增强 热运动加剧 液体黏性减小 体积增大引起分子力的削弱 考点二 理解黏性宏观上是力微观上是分子运动对动量传输的宏观平均考点三 力与运动状态 1 黏性流体在静止时无切应力

    2026年3月18日
    2
  • OpenClaw 正式发布

    OpenClaw 正式发布

    2026年3月15日
    2
  • pycharm安装tensorflow版本无法找到_pycharm安装后无解释器

    pycharm安装tensorflow版本无法找到_pycharm安装后无解释器1、TensorFlow安装keras需要在TensorFlow之上才能运行。所以这里安装TensorFlow。TensorFlow需要vs环境,需要wein64位环境,所以32位的小伙伴需要升级为64位系统以后才行。(1)第一种方式使用pip安装如果只想专用cpu加速,安装pipinstall–upgradetensorflow如果想使用gpu加速,还需要安装pipinstall–upgradetensorflow-gpu安装以后还需要cuda显卡驱动,可参考https://

    2022年8月25日
    8
  • 测试用例八大要素以及设计方法

    测试用例八大要素以及设计方法测试用例(TestCase)是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。简单地认为,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求测试用例八大要素1.测试用例编号由字母、字符、数字组合而成的字符串,有唯一性,易识别性。eg:1)系统测试:产品编号-ST-系统测试项名-系统测试子项名-编号2)集成测试:产品编号

    2022年6月28日
    29
  • pycharm更改整体背景颜色(黑-白)[通俗易懂]

    pycharm更改整体背景颜色(黑-白)[通俗易懂]pycharm更改整体背景颜色(黑-白)打开pycharm:1、左上角File—-Settings2、Appearance&Behavior—-Appearance—-第一栏:Theme选择想要的背景色(白色IntelliJLight黑色Darcula黑亮Highcontrast)—-右下角OK…

    2022年8月25日
    16

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号