首页 > 其他 > 详细

wait与条件变量

时间:2015-03-23 20:07:56      阅读:290      评论:0      收藏:0      [点我收藏+]

Condition为什么要与mutex配合呢?
一般编程中都需要判断一个条件才去等待,在判断条件和等待中间有一个时间间隔,这期间是不安全的,需要加锁。而等待阻塞以后需要把锁释放,在被唤醒以后需要重新获取锁。

很多C++库会封装Thread的wait方法,或者单独封装一个Condition类。从而实现等待功能。
Condition需要和mutex配合才能完成工作。好多库的封装者们不明白这一点,将wait中的mutex参数忽略掉。
几乎大部分C++库都有这个错误,这可能是由于早期Windows没有Condition的概念有关(WindowsXP和2003不支持Condition,但是可以通过其他机制模拟实现)。
所以一个C++线程库封装的好坏就看wait方法有没有锁参数(或者像java一样间接暴露锁)。

wait与条件变量

原文:http://my.oschina.net/chunquedong/blog/390475

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!