所以 pthread_cond_wait()
的想法是它会解锁互斥锁并等待条件。
让我们假设你先手动解锁互斥锁然后等待一个条件。在这个时间范围内,在这两个操作之间,你必须假设可能发生一些不好的事情,另一个线程将锁定互斥锁,这是不好的。如果您先等待然后解锁,也是如此,这是不可能的。
所以,这是我的问题:
pthread_cond_wait()
实际上如何运作?
线程调用该函数并传递一个锁定的互斥锁,并且等待条件结束?
如果另一个线程已被此线程锁定,那么另一个线程如何修改该变量?
我的第一个想法是,互斥锁必须是递归的,但是递归只允许同一个线程多次锁定互斥锁。
答案 0 :(得分:0)
我不确定为什么我只是谷歌 pthread_cond_wait()
的规范。
我想当我开始时,我并不完全知道我的问题会是什么。
无论如何,我的问题的答案可以在这里找到:http://pubs.opengroup.org/onlinepubs/7908799/xsh/pthread_cond_wait.html