我想知道while
等待线程被唤醒后会发生什么。
为了避免“虚假唤醒”,pthreads
文档指出您需要pthread_cond_wait
在while
语句中使用。
因此,当pthread_cond_wait
调用 时,调用线程被阻塞。发出信号后,线程在while
.
在我的代码中,我正在处理pthread_cond_wait()
这种方式:
pthread_mutex_lock(&waiting_call_lock);
while(1) {
pthread_cond_wait(&queue_cond[thread_ctx], &waiting_call_lock);
break;
}
pthread_mutex_unlock(&waiting_call_lock);
问题是,它会尝试再次进入一段时间,还是以某种方式进入一段break
时间并继续?或者,在那种情况下,break
之后pthread_cond_wait()
是必要的?