pthread_cond_wait虚假唤醒
Posted qihualin-1024
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pthread_cond_wait虚假唤醒相关的知识,希望对你有一定的参考价值。
pthread_cond_wait中的while()不仅仅在等待条件变量前检查条件cond_is_false是否成立,实际上在等待条件变量后也检查条件cond_is_false是否成立。在多线程等待的情况下,这样对condition进行多做一次判断,即可避免“虚假唤醒”。
pthread_mutex_lock(&mutex);
while(cond_is_false)
pthread_cond_wait(&cond, &mutex);
pthread_mutex_unlock(&mutex);
以上是关于pthread_cond_wait虚假唤醒的主要内容,如果未能解决你的问题,请参考以下文章
Linux C语言 pthread_cond_wait()pthread_cond_timedwait()函数(不允许cond被唤醒时产生竞争,所以需要和互斥锁搭配)