std::condition_variable 是第一次检查条件,还是必须等待别人通知?

Арт*_*вый 2 c++ condition-variable

std::condition_variable 是第一次检查条件,还是必须等待别人通知?

Ast*_*ngs 5

通过阅读文档可以回答这个问题。

就像是:

while (!pred()) {
    wait(lock);
}
Run Code Online (Sandbox Code Playgroud)

所以,首先检查条件。

这也可以通过测试来证明(不过,公平地说,仅凭此很难知道结果是否是确定性的)。

  • 我认为说它可以被测试是不公平的。由于未定义的行为,通过尝试学习在 C++ 中并不实用,更不用说多线程了。如果您违反了您可能没有意识到的规则,那么您观察到的内容不一定是确定性的或可靠的。 (2认同)