【发布时间】:2014-04-03 10:38:31
【问题描述】:
我是多线程的新手。在使用条件变量在 C++11 中编写多线程代码时,我使用以下构造
while(predicate) {
cond_var.wait(&lock);
}
但是,我一直在阅读 Deitel 关于操作系统的第三版书籍(第 6 章),其中使用了以下构造
if(predicate) {
cond_var.wait(&lock);
}
那么,有什么区别呢?为什么这本书没有使用while?虚假呼叫不是问题吗?
【问题讨论】:
-
虽然条件变量的并发性对于Computer Science 来说是一个合适的主题,但您的问题实际上更多是关于 C++ 实现的行为方式。这是一道编程题,比较适合Stack Overflow,所以我迁移到那里。
标签: c++ multithreading concurrency condition-variable