當前位置:編程學習大全網 - 網站源碼 - java編程,如何徹底理解volatile關鍵字?

java編程,如何徹底理解volatile關鍵字?

非java程序員,不過volatile在其他語言中也存在,簡單說下。

1,volatile只在多線程程序中有意義。

2,為了提高性能,編譯器工作時會進行壹些優化,如指令排序,甚至跳過壹些指令。如:

var

a=1;

a=2;

a=3;

編譯後的結果可能就只執行

a

=

3

3,程序運行時,普通變量會有緩存機制(如cpu緩存、線程本地緩存等),程序讀取時先從緩存讀取,所以多線程的程序運行時可能存在臟讀問題。即第壹個線程已經修改了變量值,但第二個線程還在使用緩存中的舊數據。

volatile的作用就是告訴編譯器,不要對使用該變量的代碼進行優化,每次讀寫操作都訪問變量的原始數據。

  • 上一篇:急急急。。。請通達信公式編寫高手幫忙把壹個指標改成選股公式,測試通過的話懸賞翻翻
  • 下一篇:360安全衛士,金山衛士哪個好
  • copyright 2024編程學習大全網