Java Volatile變量

2018-02-28 15:04 更新

Java線程教程 - Java Volatile變量


關(guān)鍵字volatile可以保持線程的工作內(nèi)存中的變量值與它們?cè)谥鞔鎯?chǔ)器中的值同步。

我們可以聲明一個(gè)變量volatile如下:

volatile boolean flag  = true;

我們可以只聲明一個(gè)類成員變量,實(shí)例或靜態(tài)字段,作為volatile。

我們可以使用volatile變量作為標(biāo)志來停止線程。

例子

下面的代碼演示了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();
  }
}

上面的代碼生成以下結(jié)果。



以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)