假设某个条件变量“cond”与互斥变量“mutex”相关联。如果一个线程cond
在调用后正在休眠pthread_cond_wait(&cond,&mutex)
,并且另一个已mutex
锁定的线程已完成,那么该线程在调用pthread_cond_signal(&cond)
之前还是之后调用是否重要pthread_mutex_unlock(&mutex)
?如果它调用,它是否甚至需要解锁互斥锁pthread_cond_signal(&cond)
,因为睡眠线程无论如何都会获取互斥锁?
编辑:根据https://computing.llnl.gov/tutorials/pthreads/#ConVarOverview,“调用 pthread_cond_signal() 后未能解锁互斥锁可能不允许匹配的 pthread_cond_wait() 例程完成(它将保持阻塞)。 " 我想那时,解锁,也许只是之后,是必需的。