官方文档没有说明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中到达通知之前要等待线程