条件变量使用方法 (Condition Variable Usage) |
int pthread_cond_init(pthread_cond_t *cond,
const pthread_condattr_t *attr = NULL );
pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
初始化一个条件变量。
错误 EAGAIN,ENOMEM,EBUSY,EINVAL
int pthread_cond_destroy( pthread_cond_t *cond );
毁坏一个条件变量。
错误 EBUSY,EINVAL
int pthread_cond_signal( pthread_cond_t *cond );
在一个指定的条件变量中, 至少使一个正阻塞的线索成为非阻塞。
错误 EINVAL
int pthread_cond_broadcast( pthread_cond_t *cond );
在一个指定的条件变量中, 使所有正阻塞的线索成为非阻塞。
错误 EINVAL
int pthread_cond_wait( pthread_cond_t *cond, pthread_mutex_t *mutex
);
阻塞指定的条件变量。
错误 EINVAL
注意 这个函数是一个取消点。
int pthread_cond_timedwait( pthread_cond_t *cond, pthread_mutex_t *mutex,
const struct timespec *abstime );
在不超过指定的绝对时间内, 阻塞指定的条件变量。
错误 ETIMEDOUT,EINVAL
注意 这个函数是一个取消点。
Copyright: NPACT |