程序執行的順序按照代碼的先后順序執行。
一般來說處理器為了提高程序運行效率,可能會對輸入代碼進行優化,進行重新排序(重排序),它不保證程序中各個語句的執行先后順序同代碼中的順序一致,但是它會保證程序最終執行結果和代碼順序執行的結果是一致的。
則因為重排序,他還可能執行順序為(這里標注的是語句的執行順序) 2-1-3-4,1-3-2-4 但絕不可能 2-1-4-3,因為這打破了依賴關系。
顯然重排序對單線程運行是不會有任何問題,但是多線程就不一定了,所以我們在多線程編程時就得考慮這個問題了。