volatile禁止指令重排序

何爲指令重排序: 計算機在執行程序時,爲了提高性能,編譯器和處理器常常會做指令重排,一把分爲以下3種: 編譯器優化的重排、指令並行的重排、內存系統的重排。 單線程環境裏面確保程序最終執行結果和代碼順序執行的結果一致。 處理器在進行重新排序是必須要考慮指令之間的數據依賴性。 多線程環境中線程交替執行,由於編譯器優化重排的存在,兩個線程使用的變量能否保持一致性是無法確定的,結果無法預測。 不可以!處理
相關文章
相關標籤/搜索