What does the modifier volatile in Java do?

Java 8Object Oriented ProgrammingProgramming

The volatile modifier is used to let the JVM understand that a thread accessing the variable should always merge its own personal copy of the variable with the original in the memory.

Accessing a volatile variable synchronizes all the cached copy of the variables in the main memory. Volatile can only be applied to instance variables, which are of type object or private. A volatile object reference can be null.


public class MyRunnable implements Runnable {
   private volatile boolean active;
   public void run() {
      active = true;
      while (active) {    
   public void stop() {
      active = false;  
Updated on 19-Feb-2020 12:41:26