使用场合:
1.一个线程在等待某个条件,另一个线程会改变这个条件
2.使用pthread_cond_timedwait等待一定的时间
1、创建
pthread_cond_t cond=PTHREAD_COND_INITIALIZER;
int pthread_cond_init(pthread_cond_t *cond, pthread_condattr_t *cond_attr); //成功返回0,失败返回错误码.
2、等待
这两个函数内部会解锁传入参数 mutex
一般在调用这两个等待函数之前都会调用 pthread_mutex_lock 函数给即将传入的参数 mutex 加锁
int pthread_cond_wait(pthread_cond_t *cond,pthread_mutex_t *mutex);
int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex,const struct timespec *abstime);//成功返回0,失败返回错误码.
3、唤醒
int pthread_cond_signal(pthread_cond_t *cptr);
int pthread_cond_broadcast (pthread_cond_t * cptr);