volatile做用: 做爲指令關鍵字,確保本條指令不會受到編譯器的優化而省略,並且要求每次直接讀值。優化
定義:spa
volatile int nTest;
volatile關鍵字是一種類型修飾符,用它聲明的類型變量表示能夠被某些編譯器未知的因素更改,好比:操做系統、硬件或者其它線程等。遇到這個關鍵字聲明的變量,編譯器對訪問該變量的代碼就再也不進行優化,從而能夠提供對特殊地址的穩定訪問。操作系統
上圖能夠發如今沒有優化的狀況下,編譯器強制執行了a=10;這條語句,而後再輸出a;而採用優化後並無執行a=10;直接輸出了10;線程