实验四 用信号量解决进程互斥与同步问题
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
#define N 100
typedef struct process
{
int num;
}P;
P a[N];
int wordtime=0;
void main(){
int i=0,j,run=1,n,p=0,v=0,num;
printf("输入存放量的大小\n");
scanf("%d",&n);
while(run==1)
{
srand(time(NULL));
j=rand()%2+1;
if(1==j)
{
if(i<5&&p==0&&v==0)
{
p++;
v++;
i++;
printf("生产\n");
p--;
v--;
}
else{
printf("仓库已满无法生产\n");
}
}
else
{
if(i>0&&p==0&&v==0)
{
p++;
v++;
i--;
printf("消费\n");
p--;
v--;
}
else{
printf("无货物无法消费\n");
}
}
printf("是否继续||1.是 2.否\n");
scanf("%d",&run);
}
}