社区
C++ 语言
帖子详情
关于条件变量wait_for的问题
haodafeng_zsh
2018-03-18 03:59:17
std::condition_variable cv;
std::mutex mtx;
std::unique_lock<std::mutex> lck(mtx);
auto cvStatus = cv.wait_for(
lck, std::chrono::microseconds(2000));
上面这段程序维斯很么cvStatus的值是notimeout,想不明白,请高人指教
...全文
781
2
打赏
收藏
关于条件变量wait_for的问题
std::condition_variable cv; std::mutex mtx; std::unique_lock lck(mtx); auto cvStatus = cv.wait_for( lck, std::chrono::microseconds(2000)); 上面这段程序维斯很么cvStatus的值是notimeout,想不明白,请高人指教
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mstlq
2018-03-18
打赏
举报
回复
http://zh.cppreference.com/w/cpp/thread/condition_variable/wait_for
如果楼主仔细阅读了上面的文档,再回头看自己遇到的代码,应该就不会有什么疑惑了。 如果还有疑惑,请把具体的代码,还有你搞不清楚的部分,以及你自己对这个问题的思考一并贴上来。大家好帮你分析。
haodafeng_zsh
2018-03-18
打赏
举报
回复
std::mutex mtx; std::unique_lock<std::mutex> lck(mtx); while (cv.wait_for(lck, std::chrono::seconds(1)) == std::cv_status::timeout) { std::cout << '.'; std::cout.flush(); } 这个代码执行结果很诡异,如果单步调试,结果是几个点不确定,为什么呢,有人能一起回答一下么
条件变量
condition_variable:
wait
、
wait
_for、
wait
_until
c++ 线程
条件变量
wait
、
wait
_for、
wait
_until
c++
条件变量
使用详解
wait
_for
wait
_unitl 虚假唤醒
使当前线程阻塞直至
条件变量
被通知、抵达指定时间或虚假唤醒发生,可选的循环直至满足 pred。使当前线程阻塞直至
条件变量
被通知、抵达指定时间或虚假唤醒发生,可选的循环直至满足 pred。使当前线程阻塞直至
条件变量
被通知,或虚假唤醒发生,可选地循环直至满足 pred。由于操作系统调度或资源争议,此函数可能阻塞长于 rel_time。使用注意:时钟最好使用稳定时钟,即计时速率恒定且无法调整的时钟。线程1修改变量,线程2等待变量被修改。
c++11 并发编程 ---
条件变量
(condition_variable)
wait
,
wait
_for
介绍condition_variable,
wait
,
wait
_for 直接上代码如下: #include <iostream> // std::cout #include <thread> // std::thread #include <mutex> // std::...
C++ std::condition_variable 是什么 有什么用
条件变量
线程同步
wait
wait
_for notify_one notify_all
一、总述 在C++11中,我们可以使用
条件变量
(condition_variable)实现多个线程间的同步操作; 当条件不满足时,相关线程被一直阻塞, 直到某种条件出现,这些线程才会被唤醒。 主要成员函数如下: 二、具体函数: 1、
wait
函数: (1)
wait
(unique_lock <mutex>&lck) 当前线程的执行会被阻塞,直到收到 notify 为止。 (2)
wait
(unique_lock <mutex>&lck,Predicatepre..
C++
条件变量
条件变量
的
wait
或者
wait
_for 是理解
条件变量
的关键。
wait
_for 可以设置超时时间。所以只拿
wait
说。
wait
调用后,先去判断后边的条件(lambda)是否满足,如果满足了直接就返回了,如果不满足就等待被唤醒。当被唤醒后,
wait
先把第一个参数加锁,这样其他线程就不能进入关键区,也就不能再次唤醒这个
条件变量
。
wait
检查条件是否满足,如果不满足,释放锁,并继续等待,让其他线程有机会执行。 参考文章: https://segmentfault.com/a/1190000006
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章