//生产者-消费者 C的简单模拟。随机产生数字,偶数生产,奇数消费。
#include <stdio.h> #include <stdlib.h> #include <windows.h>
#define n 5 int count=0; void producer() {//生产者 int in=0;//输入指针 if(count<0) { in=(in+1)%n; count++; printf("生产者生产一件产品,唤醒一消费者/n"); } else if (count<n) { in=(in+1)%n; count++; printf("producer/n"); } else { in=(in+1)%n; count++; printf("缓冲池已满,生产阻塞。/n"); } } void consumer() {//消费者 int out=0;//输出指针 if (count>n) { out=(out+1)%n; count--; printf("消费者消费一件产品,唤醒生产者/n"); } else if(count>0) { out=(out+1)%n; count--; printf("consumer/n"); } else { out=(out+1)%n; count--; printf("缓冲池为空,消费阻塞。/n"); } } int main() { int t,i=0; while(i<30) { t=rand(); // scanf("%d",&t); if (t%2==0) { producer(); } else { consumer(); } i++;
Sleep(300); } return 0; }