代码
#include<stdio.h>
#include<pthread.h>
#include<sched.h>
void *producter_f(void *arg);
void *consumer_f(void *arg);
int buffer_has_item=0;
pthread_mutex_t mutex;
int running=1;
int main(void)
{
pthread_t consumer_t;
pthread_t producter_t;
pthraed_mutex_init(&mutex,NULL);
pthread_create(&producter_t,NULL,(void*)producter_f,NULL);
pthread_create(&consumer_t ,NULL,(void*)consumer_f,NULL);
usleep(1);
running =0;
pthread_join(consumer_t,NULL);
pthread_join(producter_t,NULL};
pthread_mutex_destroy(&mutex);
return 0;
}
void *producter_f(void *arg)
{
while(running)
{
pthread_mutex_lock(&mutex);
buffer_has_item++;
printf("product,total num:%d\n",buffer_has_item);
pthread_mutex_unlock(&mutex);
}
}
void *consumer_f(void *arg)
{
while(running)
{
pthread_mutex_lock(&mutex);
buffer_has_item--;
printf("consumer,total num:%d\n",buffer_has_item);
pthread_mutex_unlock(&mutex);
}
}
运行: