• 大小: 2KB
    文件类型: .cpp
    金币: 2
    下载: 1 次
    发布日期: 2021-06-17
  • 语言: C/C++
  • 标签: C语言  PV操作  

资源简介

用C-Free5软件写的,主函数为Int类型。在其他软件上可能要改成void,算法方面没有什么问题。如果要缓冲池满就把生产者M1的数改的比消费者M2的高,要缓冲池空则相反。

资源截图

代码片段和文件信息

#include
#include
#include
#define N 10  //定义缓冲池的大小 
#define M1 1
#define M2 5
int in=0out=0;
int count=1; //全局变量,用来储存现有的产品数目 

HANDLE mutex;  //互斥信号量
HANDLE empty;  // 
HANDLE full;

void Producer(){

while(1){
if((in+1)%N==out){
printf(“缓冲池已满,请等待3秒钟!\n\n“);
Sleep(3000); 
}
else{
WaitForSingleobject(emptyINFINITE);
WaitForSingleobject(mutexINFINITE);

count++;
in=(in+1)%N;
printf(“生产了一个产品,现在的产品数为%d\n\n“count);

  ReleaseMutex(mutex);
ReleaseSemaphore(full1NULL);

Sleep(1000);

}
}

void Consumer(){
while(1){
if(in == out){
printf(“缓冲池为空,请等待2秒钟!\n\n“);
Sleep(2000);
}
else{
WaitForSingleobject(fullINFINITE);
WaitForSingleobject(mutexINFINITE);

count--;
out=(out+1)%N;
printf

评论

共有 条评论