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