1. 程式人生 > >Java 的 volatile 修飾符

Java 的 volatile 修飾符

git 多線程 對象引用 ati syn 一個 guid 指令 共享內存

volatile 修飾符,用於多線程同步

  • volatile 修飾的成員變量在每次被線程訪問時,都強制從共享內存中重新讀取該成員變量的值。而且,當成員變量發生變化時,會強制線程將變化值回寫到共享內存。這樣在任何時刻,兩個不同的線程總是看到某個成員變量的同一個值。
  • 一個 volatile 對象引用可能是 null。
  • 使用 volatile 可以禁止 JVM 的指令重排,保證在多線程環境下也能正常運行。(出處:雙重校驗鎖實現對象單例(線程安全))

Java 的 volatile 修飾符