c++11多线程编程 condition_variable wait notify_one notify_all 第八讲
发布时间
阅读量:
阅读量

(1)条件变量与同步机制
wait()函数用于等待某一特定条件的达成
1、若第二个参数的返回结果为真,则程序将继续执行后续语句。
2、若第二个参数的返回结果为假,则wait函数将释放互斥量,并在此处进入阻塞状态。
阻塞将持续至其他函数调用notify_one()函数为止。
当wait函数未提供第二个参数时,其效果与第二个参数返回值为假的情况相同。
当其他函数调用notify_one()对wait进行唤醒后,wait将再次尝试获取锁。若无法获取锁,代码将在该处持续等待锁的释放;若成功获取锁,则继续执行后续操作。
1)在被唤醒并成功加锁之后:
如果第二个参数的返回结果为真,则程序将继续执行后续语句。
如果第二个参数的返回结果为假,则wait函数将释放互斥量,并在此处再次进入阻塞状态,等待被唤醒。
2)若wait函数未设置第二个参数,一旦被唤醒并成功获取锁,程序将立即从该处继续向下执行。
(2) 对上述代码进行进一步分析与思考
(3) notify_all()函数的作用
条件变量std::condition_variable的相关方法
全部评论 (0)
还没有任何评论哟~
