本文主要是介绍pthread_cond_wait和pthread_cond_signal的使用方法梳理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这两个函数是多线程操作中非常重要的,也是相对来说难理解的。这里梳理一下。
首先是函数介绍,
int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)
这里有两个参数,cond和mutex。cond是条件,这个值可以用宏做声明:
pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
也可以使用函数来声成:
int pthread_cond_init(pthread_cond_t *cond, pthread_cond_attr *cattr);
int pthread_cond_destroy(pthread_cond_t *cond);
第一个函数是init,第二个为destroy。函数中的cond便是条件变量。这里需要说下,第一个函数中的cattr是属性声明,一般用NULL使用默认属性,其属性在函数返回时,写道cond指向的内存。
另一个主角是:
int pthread_cond_signal(pthread_cond_t *cond)
这两个一般搭配使用,pthread_cond_wait将当前线程阻塞等待,而在调用pthread_cond_signal后,将再次激活。当然,还有其它一些函数搭配使用,看下面的例子。
#include<pthread.h>
#include<unistd.h>
#include<stdio.h>
#include
这篇关于pthread_cond_wait和pthread_cond_signal的使用方法梳理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!