Java中的volatile修饰符有什么作用?

volatile修饰符用于让JVM理解,访问该变量的线程应始终将其自己的变量个人副本与内存中的原始副本合并。

访问易失性变量将同步主存储器中变量的所有缓存副本。可变变量只能应用于对象类型或私有类型的实例变量。易失性对象引用可以为null。

示例

public class MyRunnable implements Runnable {
   private volatile boolean active;
   public void run() {
      active = true;
      while (active) {    
      }
   }
   public void stop() {
      active = false;  
   }
}