指令重排:代码执行顺序与预期不一致
目的:提高性能
下例代码,结束时可能打印指令重排:**
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();
}
}
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。