同步操作對(duì)于使用并發(fā)編寫一款多線程應(yīng)用來(lái)說(shuō),是很重要的一部分:如果沒有同步,線程基本上就是獨(dú)立的,也可寫成單獨(dú)的應(yīng)用,因其任務(wù)之間的相關(guān)性,它們可作為一個(gè)群體直接執(zhí)行。本章,我們討論了各式各樣的同步操作,從基本的條件變量,到“期望”、“承諾”,再到打包任務(wù)。我們也討論了替代同步的解決方案:函數(shù)化模式編程,完全獨(dú)立執(zhí)行的函數(shù),不會(huì)受到外部環(huán)境的影響;還有,消息傳遞模式,以消息子系統(tǒng)為中介,向線程異步的發(fā)送消息。
我們已經(jīng)討論了很多C++中的高層工具,現(xiàn)在我們來(lái)看一下底層工具是如何讓一切都工作的:C++內(nèi)存模型和原子操作。