/*buffer.h*/
typedef int buffer_item; //生产的物件
#define BUFFER_SIZE 5//缓冲区大小
#include <buffer.h>
#include <stdlib.h>
#include <pthread.h>
#include <semaphore.h>
#include <windows.h>
/*the buffer*/
buffer_item buffer[BUFFER_SIZE];//缓冲区
pthread_mutex_t mutex;//互斥锁
sem_t empty;//信号量
sem_t full;//信号量
int e=5;
int f=0;
//缓冲区插入函数
int insert_item(buffer_item item){
sem_wait(&empty);
pthread_mutex_lock(&mutex);
e--;
buffer[BUFFER_SIZE-1-e]=item;
f++;
pthread_mutex_unlock(&mutex);
sem_post(&full);
}
//缓冲区删除函数
int remove_item(buffer_item *item){
sem_wait(&full);
pthread_mutex_lock(&mutex);
f--;
*item=buffer[f];
e++;
pthread_mutex_unlock(&mutex);
sem_post(&empty);
}
//生产者线程函数
void *producer(void *param){
buffer_item ran;
while(1){
Sleep(1000);
ran=rand();
printf("producer produc