C ++ condition_variable和虚假唤醒

时间:2016-04-27 09:01:54

标签: c++ condition-variable wakeup

我有兴趣使用 condition_variable 来同步两个不共享数据的线程(A和B)。 我发现上网冲浪是一个很好的解决方案。

class WaitableCondition

我在这里找到了: Paper link

问题在于两个代码片段,第一个代码片段如下。

   void WaitUntilTrue (void)
    {
        std::unique_lock<std::mutex> uLock(m_mutex);
        m_conditionVar.wait(uLock,[&]{return m_condIsTrue}); //<==== ?????
        if (m_autoReset) m_condIsTrue = false;
    }

在带有问号评论的行中是否会发生虚假唤醒?

同样的问题与以下行代码有关:

if (m_conditionVar.wait_for(uLock, timeoutPeriod, [&] {return m_condIsTrue;}))
....

由于

0 个答案:

没有答案