java 多线程-happendBefore

发布时间:2020-08-02 19:13:08 作者:wx5d21d5e6e5ab1
来源:网络 阅读:412

指令重排:代码执行顺序与预期不一致
目的:提高性能

下例代码,结束时可能打印指令重排:**
public class tt {

private static int a=0;
private static boolean flag=false;
public static void main(String[]args) throws InterruptedException
{

//线程1更改数据
    Thread t1=new Thread(()->{

        a=1;
        flag=true;
    });
    //线程2读取数据
    Thread t2=new Thread(()->{
    if(flag)
    {
        a*=1;
    }
    if(a==0)
    {
        System.out.println("发生了指令重排"+a);
    }

    });

    t1.start();
    t2.start();

    t1.join();
    t2.join();

}
}
推荐阅读:
  1. java 多线程-ThreadLocal
  2. java中的并发介绍

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java fo pp

上一篇:安卓那种软件看新闻最好

下一篇:关于高德地图怎么搜索自定义地理位(自己定义图标位置)

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》