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