as-if-serial語(yǔ)義保證單線(xiàn)程內(nèi)程序的執(zhí)行結(jié)果不被改變,happens-before關(guān)系保證正確同步的多線(xiàn)程程序的執(zhí)行結(jié)果不被改變。
as-if-serial語(yǔ)義給編寫(xiě)單線(xiàn)程程序的程序員創(chuàng)造了一個(gè)幻境:?jiǎn)尉€(xiàn)程程序是按程序的順序來(lái)執(zhí)行的。happens-before關(guān)系給編寫(xiě)正確同步的多線(xiàn)程程序的程序員創(chuàng)造了一個(gè)幻境:正確同步的多線(xiàn)程程序是按happens-before指定的順序來(lái)執(zhí)行的。
as-if-serial語(yǔ)義和happens-before這么做的目的,都是為了在不改變程序執(zhí)行結(jié)果的前提下,盡可能地提高程序執(zhí)行的并行度。