Volatile關(guān)鍵字

把變量聲明為Volatile類型后,編譯器和運(yùn)行時都會注意到這個變量是共享的,因此不會將該變量的操作和其他內(nèi)存操作一起重排序。

Volatile變量不會被緩存梓寄存器或者對其他處理器不可見的地方,因此在讀取volatile類型的變量時總會返回最新的寫入值

訪問volatile變量不會執(zhí)行加鎖操作,從而不會阻塞線程。因此他是比sychronized關(guān)鍵字更輕量的同步機(jī)制。

volatile變量只能確保可見性,而加鎖機(jī)制既可以保證可見性,又可以確保原子性

當(dāng)且僅當(dāng)符合以下條件才該使用volatile:
1.變量的寫操作不依賴變量的當(dāng)前值
2.訪問變量的時候不需要加鎖
3.變量不會與其他狀態(tài)變量一起納入不變性條件中

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容