第一次写博客,有什么不足希望大家见谅
自己写的一段程序,关于Linux下的C语言实现生产者-消费者问题
使用线程的同步与互斥实现,有需要的同学可以参考一下
先上代码
1.main函数,用来初始化线程和信号量
int main()
{
sem_init(&empty,0,BUFFER_SIZE-1);//满时阻止生产者生产
sem_init(&full,0,0);//空时阻止消费者消费
pthread_mutex_init(&mutex, NULL);//互斥,一次只允许一个线程访问
srand((unsigned)time(NULL));
buffer_item buffer[BUFFER_SIZE];
int i;
int j;
pthread_t p_tid[P_COUNT];
pthread_t c_tid[P_COUNT];
for(i=0;i<=P_COUNT;i++)
pthread_create(&p_tid[i],NULL,producer,NULL);//创建消费者线程
for(j=0;j<=C_COUNT;j++)
pthread_create(&c_tid[j],NULL,consumer,NULL);//创建生产者线程
for(i=0;i<=P_COUNT;i++)
pthread_join(p_tid[i],NULL);
for(j=0;j<=C_COUNT;j++)
pthread_join(c_tid[j],NULL);
exit(0);
}