您好,登錄后才能下訂單哦!
指令重排:代碼執行順序與預期不一致
目的:提高性能
下例代碼,結束時可能打印指令重排:**
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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。