1.条件变量
条件变量本身不是锁!但它也可以造成线程阻塞
通常与互斥锁配合使用。给多线程提供一个会合的场所。
1.主要函数应用
pthread_cond_init函数
pthread_cond_destroy函数
pthread_cond_wait函数
pthread_cond_timedwait函数
pthread_cond_signal函数
pthread_cond_broadcast函数
以上6 个函数的返回值都是,成功返回0,失败直接返回错误号
pthread_cond_t类型用于定义条件变量
pthread_cond_t cond;
pthread_cond_init函数 初始化一个条件变量
int pthread_cond_init(pthread_cond_t *restrict cond, const pthread_condattr *restrict attr);参1:需要初始化的条件变量参2:arrt表条件比那里属性,通常为默认值,传NULL即可
1.动态初始化:pthread_cond_init(&cond,NULL)2.静态初始化: pthread_cond_t cond = PTHREAD_COND_INITIALIZER ;
int pthread_cond_wait(pthread_cond_t *restrict cond, pthread_mutex_t *restrict mutex);参1:已经初始化号的条件变量,如果条件不满足,则一直阻塞等待