Javaスレッドの揮発性キーワードの例が必要です。Javaにおけるvolatileキーワードの動作
volatileキーワードの定義によると、変数がvolatileとして宣言された場合、スレッドはローカルスレッドキャッシュからの読み書きの代わりに変数メモリへの直接の読み書きを行います。
私が間違っている場合は、私に修正してください。だから私は、以下のプログラムを実行することを理解する上で
、public class ThreadRunnableBoth implements Runnable{
private volatile int num =0;
public void run(){
Thread t = Thread.currentThread();
String name = t.getName();
for(int i=0; i<100; i++){
if(name.equals("Thread1")){
num=10;
System.out.println("value of num 1 is :"+num);
}else{
num=15;
System.out.println("value of num 2 is :"+num);
}
}
}
public static void main(String args[]) throws InterruptedException{
Runnable r = new ThreadRunnableBoth();
Thread t1 = new Thread(r);
t1.setName("Thread1");
Thread t2 = new Thread(r);
t2.setName("Thread2");
t1.start();
t2.start();
}
}
私はいくつかのサイトからこれらの例を持って、私はそれを実行しているしようとしたとき、私は、揮発性の取り外しやvolatileキーワードを追加する任意の違いを参照してください傾けます。
私はそれを削除して追加する際に違いが生じることをご説明ください。
ありがとうございます。