QWaitCondition可以虚假地唤醒吗?

时间:2019-03-11 10:56:34

标签: c++ qt condition-variable

官方文档没有说明QWaitCondition是否可以像std::condition_variable那样虚假地唤醒。想象一下我有thread1:

//Thread no. 1
qmutex.lock();
someCondition = false;
qmutex.unlock();
qwaitcond.notify_all();

所以我的问题是,是否可以安全地假定此代码在其他线程中:

//Thread no. 2
if(someCondition)
    qwaitcond.wait(qmutex);

和此代码:

//Thread no. 2
while(someCondition)
    qwaitcond.wait(qmutex);

等效吗?还是有其他知识来源说他们可以在没有notify的情况下醒来,我应该选择第二个样本?

注意:为了简单起见,我假设在线程2中到达通知之前要等待线程

0 个答案:

没有答案