jvm指令重排原因?怎么避免?
生活随笔
收集整理的這篇文章主要介紹了
jvm指令重排原因?怎么避免?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原因:計算機內存操作速度遠慢于CPU運行速度,所以就造成CPU空置,為了將提高CPU利用率,虛擬機會按照自己的一些規則會跳過執行慢的代碼,去執行快的代碼(即對代碼重新排序),從而提升jvm的整體性能。
怎么避免:給關鍵的代碼加上volatile關鍵字,所謂關鍵,就是會被執行順序影響結果。
volatile關鍵字的三個特征是:線程可見、不具備原子性、禁止指令重排,volatile 的讀性能消耗與普通變量幾乎相同,但是寫操作稍慢,因為它需要在本地代碼中插入許多內存屏障指令來保證處理器不發生亂序執行。
總結
以上是生活随笔為你收集整理的jvm指令重排原因?怎么避免?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [转]调试 smallcorgi/Fas
- 下一篇: 蓄水池抽样算法 Reservoir Sa