我正在阅读 A Williams 的这篇不错的博客:
http://www.justsoftwaresolutions.co.uk/threading/condition-variable-spurious-wakes.html
有一件事让我很烦恼:当线程因为虚假唤醒而唤醒时,它是否锁定了互斥锁?
boost::mutex::scoped_lock lock(the_mutex);
while(the_queue.empty())
{
the_condition_variable.wait(lock);
}
我想是这样,因为否则调用 .empty 将是不安全的,但我不确定。