生产者消费问题.doc

生产者消费问题.doc

ID:55533392

大小:78.50 KB

页数:9页

时间:2020-05-16

生产者消费问题.doc_第1页
生产者消费问题.doc_第2页
生产者消费问题.doc_第3页
生产者消费问题.doc_第4页
生产者消费问题.doc_第5页
资源描述:

《生产者消费问题.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、生产者消费者问题算法调用CreateFileMapping((HANDLE)0xFFFFFFFF,NULL,PAGE_READWRITE,0,sizeof(MAKEBUFFER),"MyBuffer")函数,创建一个名为MyBuffer的文件映射。生产者:调用hMemShare=OpenFileMapping(FILE_MAP_WRITE,FALSE,"MyBuffer")函数,打开该映射,调用lpbuffer=(MAKEBUFFER*)MapViewOfFile(hMemShare,FILE_MAP_WRITE,0,0,sizeof(MAKEBUFFER

2、))连接映射。如果有空闲,则开始写数据,没用空闲则循环等待,直到用空闲后,开始写数据。消费者:打开并连接映射后,如果有数据,则显示数据,并清除该数据,如果没有,则循环等待,直到有数据写入后,显示该数据,然后清除数据。函数说明创建映射(MakeBuffer)#include#include"iostream.h"#include"stdio.h"//定义BUFFER类classMAKEBUFFER{public:intbuffer[3];};voidmain(){//创建缓冲区if(CreateFileMapping((HANDLE)0

3、xFFFFFFFF,NULL,PAGE_READWRITE,0,sizeof(MAKEBUFFER),"MyBuffer")==NULL){cout<<"FailedtoAlloocate"<#include"iostream.h"#include"stdio.h"//定义BUFFER类classMAKEBUFFER{

4、public:intbuffer[3];};voidmain(){HANDLEhMemShare;MAKEBUFFER*lpbuffer;SYSTEMTIMEtim;inti;//打开映射hMemShare=OpenFileMapping(FILE_MAP_WRITE,FALSE,"MyBuffer");if(hMemShare==NULL)cout<<"ThereisnoBUFFER!"<

5、MAKEBUFFER));if(lpbuffer==NULL){cout<<"FailedtoMap"<buffer[i]==0)break;}//如果没有空闲的位置if(i==3){cout<<"Thereisnoroomforthisprocess!Waitforroom!"<buffer[i]==0)//有空闲位置,记下空闲位置,跳出循环br

6、eak;}lpbuffer->buffer[i]=1;//占用该位置,将其置1GetSystemTime(&tim);//获取当前系统时间cout<<"Theprocesshaswrittenintobufferat"<buffer[j]==1)k--;}cout<<"Thereis"<

7、t"<buffer[i]=1;//占用当前位置,将其置1GetSystemTime(&tim);//获取当前系统时间cout<<"Theprocesshaswrittenintobufferat"<buffer[j]==1)k--;}cout<<"The

8、reis"<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。