【发布时间】:2019-11-28 11:28:59
【问题描述】:
当一个线程调用pthread_cond_signal 时,等待条件的线程之一将恢复其执行。但是调用线程会发生什么?它是否等待被调用线程释放互斥锁然后恢复?
例如等待线程:
pthread_mutex_lock(&mut);
// ...
pthread_cond_wait(&cond, &mut);
// ...
pthread_mutex_unlock(&mut);
还有信号线程:
pthread_mutex_lock(&mut);
// ...
pthread_cond_signal(&cond);
// ... has work to finish
pthread_mutex_unlock(&mut);
在这种情况下,如果等待线程已经接管了互斥体,信号线程如何继续工作?
【问题讨论】:
标签: multithreading pthreads mutex condition-variable