linux环境编程-线程同步【条件变量-生产者消费者】

一.条件变量

条件变量本身不是锁,但他可以造成线程阻塞,通常与互斥锁配合使用。给多线程提供一个会和场所

二.条件变量主要应用函数

  • int pthread_cond_init(pthread_cond_t *cond, pthread_condattr_t *cond_attr);
  • int pthread_cond_signal(pthread_cond_t *cond);
  • int pthread_cond_broadcast(pthread_cond_t *cond);
  • 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);
  • int pthread_cond_destroy(pthread_cond_t *cond);

以上6个函数成功都是返回0, 失败返回错误号。

pthread_cond_t 类型 定义条件变量如:pthread_cond_t cond;

要重点讲的就是这个 pthread_cond_wait

1.阻塞等

猜你喜欢

转载自blog.csdn.net/qq_44065088/article/details/109194198