java单例指令重排_java实现数组去重

java单例指令重排_java实现数组去重java指令重排案例。

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

Jetbrains全系列IDE稳定放心使用

/** * 验证指令重排的案例 * 顺序执行下,x和y不可能同时为0,如果出现了同时为0,则说明发生了指令重排。 */
public class InstructionRearrangement { 
   
    static int a = 0, b = 0, x = 0, y = 0;

    public static void main(String[] args) throws InterruptedException { 
   
        while (true) { 
   
            Thread one = new Thread(() -> { 
   
                a = 1;
                x = b;
            });
            Thread other = new Thread(() -> { 
   
                b = 1;
                y = a;
            });
            one.start();
            other.start();
            one.join();
            other.join();
            //没有指令重排,x和y不可能同时为0
            if (x == 0 && y == 0) { 
   
                System.out.println("x=" + x + ",y=" + y);
            }
            a = 0;
            b = 0;
            x = 0;
            y = 0;
        }
    }
}

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/180936.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • spring boot之端口设置和contextpath的配置[通俗易懂]

    spring boot之端口设置和contextpath的配置[通俗易懂]端口设置Springboot默认端口是8080,如果想要进行更改的话,只需要修改applicatoin.properties文件,在配置文件中加入:1server.port=9090常用配置:1234567891011121314151617

  • 中华人民共和国国家标准电子计算机机房设计规范_计算机机房建设标准规范

    中华人民共和国国家标准电子计算机机房设计规范_计算机机房建设标准规范第一章总则第1.0.1条为了使电子计算机机房设计确保电子计算机系统稳定可靠运行及保障机房工作人员有良好的工作环境,做到技术先进、经济合理、安全适用、确保质量,制定本规范。第1.0.2条本规范适用于陆地上新建、改建和扩建的主机房建筑面积大于或等于140平方m的电子计算机机房的设计。本规范不适用于工业控制用计算机机房和微型计算机机房。第1.0.3条电子计…

  • 二进制加减运算

    二进制加减运算二进制加法原则是:2个1相加等于2就要向前给1,下面得算为0,相当于十进制1+9=10向前给1,下面得算为0,因为二进制只有0和1,所以1加1等于2多了一个1就要往前送。二进制减法原则是:0减1不够,就向前借2减11、加法实例11001100+0000110011001100+00001100——————11011000首先右边两个0相加为0,右3位1+1=2就要给前面1个1,下面得数为0,右4位因为前面给了一个1,所以现在就是1+1+1=3,把2向前给1,然后3..

  • STM32学习笔记之—红外通信

    STM32学习笔记之—红外通信132

    2022年10月28日
  • [Java 8] (6) Lambda与资源管理

    [Java 8] (6) Lambda与资源管理

  • js 取整数[通俗易懂]

    js 取整数[通俗易懂]1.丢弃小数部分,保留整数部分parseInt(7/2)2.向上取整,有小数就整数部分加1 Math.ceil(7/2)3,四舍五入. Math.round(7/2)4,向下取整 Math.floor(7/2)

发表回复

您的电子邮箱地址不会被公开。

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