因此,pthread_cond_wait()
的想法是,它将解锁互斥体并等待条件。
假设您首先手动解锁互斥体,然后等待条件出现。在该时间范围内,在这两个操作之间,您必须假设可能会发生一些不好的事情,另一个线程将锁定互斥体,这是不好的。如果先等待再解锁也是一样,这是不可能的。
所以,我的问题是:
pthread_cond_wait()
实际上是如何工作的?
线程调用该函数并传递一个锁定的互斥体,然后等待条件解决?
如果该变量已被该线程锁定,另一个线程如何修改该变量?
我的第一个想法是,互斥锁必须是递归的,但是递归只允许同一线程多次锁定互斥锁。
最佳答案
不知道为什么我不直接用谷歌搜索pthread_cond_wait()
的规范。
我想当我开始时我并不完全知道我的问题会是什么。
无论如何,我的问题的答案可以在这里找到:http://pubs.opengroup.org/onlinepubs/7908799/xsh/pthread_cond_wait.html
关于c - pthread_cond_wait() 实际上是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46791907/