#include<stdio.h>
#include<stdlib.h>
#include<pthread.h>
int count = 0;
pthread_mutex_t mutex;
pthread_cond_t cond;
void * add(void *arg)
{
while(1)
{
pthread_mutex_lock(&mutex);
count++;
if(count == 5)
{
pthread_cond_signal(&cond);
}
sleep(1);
pthread_mutex_unlock(&mutex);
sleep(1);
}
}
void * printf_1(void *arg)
{
while(1)
{
if(count != 5)
{
pthread_cond_wait(&cond,&mutex);
}
printf("count = %d\n",count);
count = 0;
pthread_mutex_unlock(&mutex);
sleep(1);
}
}
int main()
{
pthread_t id1;
pthread_t id2;
pthread_mutex_init(&mutex,NULL);
pthread_cond_init(&cond,NULL);
pthread_create(&id1,NULL,add,NULL);
pthread_create(&id2,NULL,printf_1,NULL);
pthread_join(id1,NULL);
pthread_join(id2,NULL);
}
线程——条件变量——代码
最新推荐文章于 2023-06-25 20:29:54 发布