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