Java Volatile变量

Java线程教程 – Java Volatile变量

关键字volatile可以保持线程的工作内存中的变量值与它们在主存储器中的值同步。

我们可以声明一个变量volatile如下:

volatile boolean flag  = true;

我们可以只声明一个类成员变量,实例或静态字段,作为volatile。

我们可以使用volatile变量作为标志来停止线程。

例子

下面的代码演示了volatile变量的使用。

public class Main 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{
    Main v = new Main();
    v.start();
    Thread.sleep(3000);
    System.out.println("Going to set the stop flag to true");
    v.stopThread();
  }
}

上面的代码生成以下结果。

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《Java Volatile变量》
文章链接:https://zhuji.vsping.com/293723.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。