哪一个是正确的? 1.
pthread_mutex_lock
...
pthread_cond_broadcast
pthread_mutex_unlock
2.
pthread_mutex_lock
...
pthread_mutex_unlock
pthread_cond_broadcast
我知道第二个条件可能会在解锁广播期间发生变化。 但是第一个有什么问题。线程可以被阻塞吗? 是否有一些代码可以显示第一个中的问题? 谢谢
最佳答案
第一个序列工作正常。 pthread_cond_broadcast()
应在互斥体锁定后调用,并且必须解锁互斥体才能使 pthread_cond_wait()
例程完成。
您可以在此处找到更多说明:https://computing.llnl.gov/tutorials/pthreads/#ConVarOverview
关于c - APUE<2nd> 11.4,先发信号或先解锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30518855/