程序執(zhí)行的順序按照代碼的先后順序執(zhí)行。
一般來(lái)說(shuō)處理器為了提高程序運(yùn)行效率,可能會(huì)對(duì)輸入代碼進(jìn)行優(yōu)化,進(jìn)行重新排序(重排序),它不保證程序中各個(gè)語(yǔ)句的執(zhí)行先后順序同代碼中的順序一致,但是它會(huì)保證程序最終執(zhí)行結(jié)果和代碼順序執(zhí)行的結(jié)果是一致的。
則因?yàn)橹嘏判?,他還可能執(zhí)行順序?yàn)?這里標(biāo)注的是語(yǔ)句的執(zhí)行順序) 2-1-3-4,1-3-2-4 但絕不可能 2-1-4-3,因?yàn)檫@打破了依賴(lài)關(guān)系。
顯然重排序?qū)尉€程運(yùn)行是不會(huì)有任何問(wèn)題,但是多線程就不一定了,所以我們?cè)诙嗑€程編程時(shí)就得考慮這個(gè)問(wèn)題了。