Thread Volatile Variable In Java Example

Chapter: Thread Last Updated: 16-06-2017 09:09:24 UTC

Program:

            /* ............... START ............... */
                
public class JavaVolatileVariables extends Thread {
	private volatile boolean keepRunning = true;

	public void run() {
		System.out.println("Thread started");
		while (keepRunning) {
			try {
				System.out.println("Going to sleep");
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
		System.out.println("Thread stopped");
	}

	public void stopThread() {
		this.keepRunning = false;
	}

	public static void main(String[] args) throws Exception {
		JavaVolatileVariables v = new JavaVolatileVariables();
		v.start();
		Thread.sleep(3000);
		System.out.println("Going to set the stop flag to true");
		v.stopThread();
	}
}
                /* ............... END ............... */
        

Output

Thread started
Going to sleep
Going to sleep
Going to sleep
Going to set the stop flag to true
Thread stopped

Notes:

  • The Java volatile keyword guarantees visibility of changes to variables across threads.
  • The Java volatile keyword is used to mark a Java variable as "being stored in main memory". More precisely that means, that every read of a volatile variable will be read from the computer's main memory, and not from the CPU cache, and that every write to a volatile variable will be written to main memory, and not just to the CPU cache.

Tags

Thread Volatile Variable, Java

Similar Programs Chapter Last Updated
Java Synchronized Method Thread 10-10-2017
Java Thread SetName() Method Thread 19-08-2017
Java Thread NotifyAll Method Thread 07-08-2017
Java Thread Synchronization Thread 07-01-2017
Java Display All Running Thread Thread 10-09-2016
Java Get Thread ID Example Thread 10-09-2016
Java Thread Suspend Example Thread 10-09-2016
Java Thread Stop Example Thread 10-09-2016
Java Set Thread Priority Thread 10-09-2016
Java Thread Status Example Thread 10-09-2016
Wait On object In Java Thread 13-08-2016
Demonstrate Join() In Java Thread Thread 13-08-2016
Wait For Threads To Finish In Java Thread 13-08-2016
Wait For Completion Of Thread In Java Thread 13-08-2016
Thread Yield In Java Example Thread 20-06-2016
Suspend Resume And Stop A Thread In Java Thread 21-07-2016
Interthread Communication In Java Example Thread 19-08-2017
Thread start() Method in Java Example Thread 21-07-2016
Thread run() Method in Java Thread 19-08-2017
Thread isAlive() Method in Java Example Thread 19-08-2017
Thread getPriority() Method In Java Example Thread 11-04-2016
Thread getName() Method In Java Example Thread 21-07-2016
Synchronized Method In Java Example Thread 25-06-2017
Wait And Notify in Java Example Thread 21-07-2016
Pause Execution with Sleep In Java Example Thread 21-07-2016
Thread Stack Trace In Java Example Thread 21-07-2016
Thread State In Java Example Thread 16-06-2017
Thread Sleep In Java Example Thread 15-07-2016
Thread Name In Java Example Thread 13-06-2017
Thread Join In Java Example Thread 13-06-2017

1 2