线程中的条件变量
线程中的条件变量
创建并初始化
#include <pthread.h>
int pthread_cond_init(pthread_cond_t *restrict cond,
const pthread_condattr_t *restrict attr);
pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
功能:
- 创建初始化条件变量
pthread_cond_init -动态初始化
PTHREAD_COND_INITIALIZER-静态初始化
入口:
cond-带初始化条件的地址attr-带初始化条件的属性
出口:
- 0-正常
- 错误码-非正常
休眠等待
#include <pthread.h>
int pthread_cond_wait(pthread_cond_t *restrict cond,
pthread_mutex_t *restrict mutex);
功能:
- 条件不满足休眠-释放互斥锁
- 唤醒->检测条件(手动检测)->阻塞拿锁
or休眠
入口:
cond-条件变量mutex-互斥锁
出口:
- 0-正常
- 错误码-非正常
通知唤醒
#include <pthread.h>
int pthread_cond_signal(pthread_cond_t *cond);
功能:
- 唤醒一个条件变量下的线程
- 多个变量(
int pthread_cond_broadcast(pthread_cond_t *cond);)
入口:
cond-条件变量
出口:
- 0-正常
- 错误码-非正常
销毁
#include <pthread.h>
int pthread_cond_destroy(pthread_cond_t *cond);
功能:
- 销毁条件变量
入口:
cond-条件变量
出口:
- 0-正常
- 错误码-非正常

浙公网安备 33010602011771号