c++有條件等待condition_variable/std::unique_lock,實現(xiàn)線程同步
部分代碼


當條件變量不滿足時,永遠也等不到的:

當條件變量滿足時,可以等到:

2. 關(guān)鍵變量:
std::condition_variable cv_;
bool isok_ = false;
3.? 注意事項:
3.1 wati()函數(shù)如果沒有條件判斷,有時候會產(chǎn)生虛假喚醒,而有條件的等待可以很好的解決這一問題,利用 std::condition_variable wait有條件的等待
? void wait(unique_lock & lck, Predicate pred) 為有條件的等待
3.2 另外 以detach的方式執(zhí)行線程時,要將線程訪問的局部數(shù)據(jù), 使用值傳遞,傳遞給線程函數(shù),或者壓根該線程函數(shù)會在局部作用域結(jié)束前執(zhí)行結(jié)束。
標簽: