Quantcast
Channel: behaviour of volatile keyword in java - Stack Overflow
Viewing all articles
Browse latest Browse all 7

behaviour of volatile keyword in java

$
0
0

I need some example on Volatile Keyword of Java Threads.

As per definition of volatile keyword it says, when variable is declared as volatile then thread will directly read/write to variable memory instead of read/write from local thread cache.

please correct me if I am wrong.

So in that understanding when I run the below program,

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();      }  }  

I got these example from some site and when i tried running it I cant see any difference removing Volatile or adding Volatile Keyword.

Please explain me the difference happens on removing it and adding it.

Thanks a lot.


Viewing all articles
Browse latest Browse all 7

Latest Images

Trending Articles



Latest Images