Java多線程:volatile關鍵字

在多線程之中,volatile關鍵字主要是在屬性定義上使用,表示此屬性爲直接數據操作,而不進行副本的拷貝處理。這在一個圖書上就將其錯誤的理解爲同步屬性了。

在正常進行變量處理的時候往往會經歷如下幾個步驟:

  • 獲取變量原有的數據內容;
  • 利用副本爲變量進行數學計算;
  • 將計算後的變量保存到原始空間之中

而如果一個屬性上追加了volatile關鍵字,表示的就是不使用副本,而是直接操作原始變量,相當於節約了拷貝副本,重新保存的步驟

 

volatile與synchronized的區別:

  • volatile主要在屬性上使用,而synchronized是在代碼塊與方法上使用的
  • volatile無法描述同步處理,它只是一種內存的處理,避免了副本的操作,而synchronized是實現同步的關鍵字

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章