我刚刚接触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
}
}
我请求你们能请你告诉挥发功能的小程序,所以在技术上也很清楚,我