我剛剛接觸volatile變量,但是我正在閱讀一篇文章,其中指出2)在某些情況下,如可見性,易變變量可用作實現Java同步的另一種方式。使用volatile變量保證所有讀取器線程在寫入操作完成後都會看到volatile變量的更新值,而不使用volatile關鍵字不同的讀取器線程可能會看到不同的值。關於volatile變量的使用
我請求你們可以請你給我看一個小型的Java程序,所以在技術上也是很明顯的。
我的理解是... 易變意味着每個線程訪問該變量將擁有自己的私人副本,它與原來的一樣。但是如果線程要改變該私人副本,那麼原來的將不會得到體現。
public class Test1 {
volatile int i=0,j=0;
public void add1()
{
i++;
j++;
}
public void printing(){
System.out.println("i=="+i+ "j=="+j);
}
public static void main(String[] args) {
Test1 t1=new Test1();
Test1 t2=new Test1();
t1.add1();//for t1 ,i=1,j=1
t2.printing();//for t2 value of i and j is still,i=0,j=0
t1.printing();//prints the value of i and j for t1,i.e i=1,j=1
t2.add1();////for t2 value of i and j is changed to i=1;j=1
t2.printing();//prints the value of i and j for t2i=1;j=1
}
}
我請求你們能請你告訴揮發功能的小程序,所以在技術上也很清楚,我