条件变量
使用场景:生产者消费者问题
必要性:为了实现等待某个资源,让线程休眠。提高运行效率
int pthread_cond_wait(pthread_cond_t *restric cond,
pthread_mutex_t *restrict mutex);
int pthread_cond_timedwait(pthread_cond_t *restrict cond,
thread_mutex_t *restrict mutex,
const struct timespec *restrice abstime);
int pthread_cond_signal(pthread_cond_t *cond);
int pthread_cond_broadcast(pthread_cont_t *cond);
使用步骤:
使用步骤:
pthread_cond_t cond = PTHREAD_COND_INITIALIZER;//初始化条件变量
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;//初始化互斥量
生产资源线程:
pthread_mutex_lock(&mutex);
开始生产资源:
pthread_cond_sigal(&cond); //通知一个消费线程
或者:
pthread_cond_broadcast(&cond); //广播通知多个消费线程
pthread_mutex_unlock(&mutex);
消费者线程:
p