条件变量使用总结

使用条件变量,调用signal/broadcast的时候,无法知道是否已经有线程等在wait上了。因此,一般要先改变条件状态,然后再发送signal/broadcast信号。然后在wait调用线程上先检查条件状态,只有当条件状态为假的时候才进入pthread_cond_wait进行等待,从而防止丢失signal/broadcast事件。并且检查条件、pthread_cond_wait,修改条件、signal/broadcast都要在同一个mutex的保护下进行。

 

https://www.cnblogs.com/liyuan989/p/4240271.html

posted @ 2018-01-25 20:30  zzfx  阅读(289)  评论(0编辑  收藏  举报