什麼是指令重排序?

    指令重排序指的是JIT編譯器、cpu處理器和jmm定義的多級緩存存儲,在編譯字節碼和運行機器指令時,在不影響程序最終執行結果的狀況下,會對原語句執行的順序進行優化。jmm多級緩存會讓語句的執行並不必定是按照正確的讀寫操做進行的。可是這些都是jmm所容許的操做。所以須要經過同步來禁止相關的指令重排序,如內存屏障。數組

 

參考資料:緩存

JMM Cookbook(一)指令重排優化

指令重排排序

對於編譯器的編寫者來講,Java內存模型(JMM)主要是由禁止指令重排的規則所組成的,其中包括了字段(包括數組中的元素)的存取指令和監視器(鎖)的控制指令。內存

相關文章
相關標籤/搜索