本章主要內(nèi)容
在上一章中,我們看到各種在線程間保護(hù)共享數(shù)據(jù)的方法。當(dāng)你不僅想要保護(hù)數(shù)據(jù),還想對(duì)單獨(dú)的線程進(jìn)行同步。例如,在第一個(gè)線程完成前,可能需要等待另一個(gè)線程執(zhí)行完成。通常情況下,線程會(huì)等待一個(gè)特定事件的發(fā)生,或者等待某一條件達(dá)成(為true)。這可能需要定期檢查“任務(wù)完成”標(biāo)識(shí),或?qū)㈩愃频臇|西放到共享數(shù)據(jù)中,但這與理想情況還是差很多。像這種情況就需要在線程中進(jìn)行同步,C++標(biāo)準(zhǔn)庫(kù)提供了一些工具可用于同步操作,形式上表現(xiàn)為條件變量(condition variables)和期望(futures)。
在本章,將討論如何使用條件變量等待事件,以及介紹期望,和如何使用它簡(jiǎn)化同步操作。