水木社区手机版
首页
|版面-C++程序设计语言(CPlusPlus)|
新版wap站已上线
返回
1/1
|
转到
主题:一个关于condition_variable问题
1楼
|
Bernstein
|
2021-10-14 04:18:52
|
展开
你自己找一个经典的条件变量例子程序看一下,就知道了
比如
https://en.cppreference.com/w/cpp/thread/condition_variable
条件变量存在所谓假唤醒问题,所以唤醒后要检查是否满足特定条件,否则要继续休眠;
因此wait_for需要传递第三个参数,是一个lambda,检测条件是否满足,满足则返回true
【 在 xunery 的大作中提到: 】
: #include <mutex>
: #include <condition_variable>
:
: ...................
--
FROM 221.218.210.*
3楼
|
Bernstein
|
2021-10-14 12:40:34
|
展开
有的,我发的链接里就有提到
两参数的接口,你需要自己检查,不符合条件的话,重新获取锁并再次调用wait_for;实际上需要一个while循环,或者说自己来实现一个三参数的版本
【 在 xunery 的大作中提到: 】
: “条件变量存在所谓假唤醒问题”
: 这个说法有文档支撑吗?我从没在哪个文档看到这个说法。另外,我现在就是想问的两参数wait_for的情况为何会有这种问题
--
FROM 221.218.210.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版