volatile
線程對變量進(jìn)行修改后,立刻寫回到主內(nèi)存
線程對變量讀取的時候,從主內(nèi)存中讀取,而不是緩沖,避免了指令重排
銀海網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,銀海網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為銀海上千多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的銀海做網(wǎng)站的公司定做!
無法破除循環(huán)
public class my {
private volatile static int num=0;
public static void main(String[]args) throws InterruptedException
{
new Thread(()->{
while(num==0)
{
}
}).start();
Thread.sleep(1000);
num=1; //理論上1秒后停止,因?yàn)樗姥h(huán)沒有辦法同步num
}
}
修改后:
public class my {
private volatile static int num=0;
public static void main(String[]args) throws InterruptedException
{
new Thread(()->{
while(num==0)
{
}
}).start();
Thread.sleep(1000);
num=1; //理論上1秒后停止,因?yàn)樗姥h(huán)沒有辦法同步num
}