私は揮発性変数を初めて使用しますが、2) 揮発性変数は、可視性など、Java で同期を実現する別の方法として使用できるという記事を読んでいました。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
}
}
揮発性機能の小さなプログラムを見せていただけないでしょうか。技術的にも明らかです