併發程式設計時,Java 的volatile提供了一種弱的執行緒同步機制。
volatile提供了兩種語義:
  1)禁止編譯器對其修飾的程式碼進行重組
  2)將變數的寫操作立即同步到記憶體中而不快取在暫存器裡,
確保該變數的寫入操作得對其它執行緒立即可見。
  volatile的侷限性體現在:它不能保證對變數操作的原子性,
例如,count++。volatile變數只能確保可見性。
  使用volatile需要滿足以下全部條件:
  1)對變數的寫入操作不依賴變數的當前值,或者變數的寫操作
封閉在單個執行緒中。
  2)該變數不會成為破壞類的安全性的因素
  3)在訪問變數時不需要加鎖