pthread_cond_wait()
时间: 2023-10-17 19:32:05 浏览: 88
信号pthread_cond_wait
3星 · 编辑精心推荐
pthread_cond_wait() 是 POSIX 线程库中的函数,用于线程间的条件变量等待。它的函数原型如下:
```c
int pthread_cond_wait(pthread_cond_t *restrict cond, pthread_mutex_t *restrict mutex);
```
该函数会阻塞当前线程,直到另一个线程调用 pthread_cond_signal() 或 pthread_cond_broadcast() 函数来唤醒它。当被唤醒后,该函数会重新获取 mutex,并对其解锁,然后返回。
在调用 pthread_cond_wait() 之前,必须确保已经先获取了 mutex 的锁,否则会出现错误。在调用 pthread_cond_wait() 时,会自动解锁 mutex,并且在被唤醒后重新获取 mutex 的锁。
这个函数通常用于线程之间的同步与通信,例如生产者-消费者模型中的等待消费者消费产品、条件判断等待等场景。
阅读全文