#include<stdlib.h>
#include<buffer.h>
#include<pthread.h>
#include<semaphore.h>
sem_t mutex;
sem_t empty;
sem_t full;
/*信号量指针
共享级别
初始值*/
/*create the semaphore semaphore */
sem_init(&mutex,0,1);
sem_init(&empty,0,5);
sem_init(&full,0,0);
buffer_item buffer[BUFFER_SIZE]
int count=0;
int insert_item(buffer_item item){
if(count<BUFFER_SIZE){
buffer[count]=item;
count++;
return 0;
}
else{
prinf("The buffer is full ,insert failed");
return 1;
}
/*insert item into buffer
return 0 if succerssful otherwise
return 1 indicating an error condition*/
}
int remove_item(buffer_item *item){
if(count>=0){
item=buffer[count];
count--;
return 0;
}
else{
printf("The buffer is empty ,draw failed");
return -1;
}
/*remove an object from buffer
placing it in item
return 0 if successful ,otherwise
return -1 indicating an error condition*/
}
void *prod
项目:生产者消费者问题
最新推荐文章于 2020-12-17 12:09:01 发布