亂執(zhí)行,那是程序員寫的代碼根本不嚴(yán)謹(jǐn)。并行,多線程操作,線程鎖用得好的話是可以控制線程的執(zhí)行順序或調(diào)度,只是需要對線程,各種鎖的機(jī)制,還有線程切換,OS的進(jìn)程調(diào)用,線程切換,現(xiàn)場保護(hù)都不一樣。
亂執(zhí)行的并行程序,首先是數(shù)據(jù)沖突,有時候無法達(dá)到設(shè)計需求。然后是數(shù)據(jù)和代碼執(zhí)行中的各種沖突,有些會死鎖,就是程序不動了,有些直接導(dǎo)致崩潰,數(shù)據(jù)丟失。
并行,多線程需要一定的經(jīng)驗,而且盡量把系統(tǒng)IO與工作線程分開,一般情況下是單線程的工作線程,多線程并發(fā)的IO輸出,因為系統(tǒng)IO對最耗時的,OS對每一個進(jìn)程都會有一個高度,主線程與非主線程進(jìn)行切換,還有與其他進(jìn)程切換,就是多核CPU也一樣,因為操作系統(tǒng)同時要控制幾百個線程的各種調(diào)度。