C语言实现多个生产者和消费者_第1页
C语言实现多个生产者和消费者_第2页
C语言实现多个生产者和消费者_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、#uiclude windows-h11 #include coiiio.h#include ,rstdio.lrdefine NUM 104 I . p O* 、define PRO 5define CON 30 .riiit. aNUMJ;缓冲区的数量生产者的数量 廂務的数量/循环缓冲区mt: count=l;计数值初始化static HANDLE full; ”全局满缓冲区信号量的茂明 static HANDLE empty;全同空纔冲区楮号量的声阴 HANDLE mutex,至局互斥信号量的声明void ProclucerOwliile(l)oif(coimt=NUM)c.printf

2、(rf缓冲区已满.请等待3秒! 3);Sleep(3000);:int product=4;XViutFoiSingk Obj cct( empty. INFINITE); itFoiSmgleObjecmutex.INFINITE); count=count%NUNI初始化声品p操作,判断缓冲区是否为满/互斥p操作a count =product;count-H-;prmtf(*i产者生产产品总数为:%d,?count);向缓冲区放入产品Sleep(3000);释放互斥信号量释放自然信号量ReleaseMutex(nnitex);ReleaseSemaphore(empty, 1 .NULL

3、);void Consumerwlule(l) .if(coimt=0)c *.printff缓冲区己空,请筹待3秒! W);Sleep(3000);;初始化消费变量pc操作?判断缓冲区是否为满互斥p操作int consumei=0;sitForSmgleObjec empty; INFENITE); ltForS mgle Obj ect(mu tex .INFINITE ); coiint=count%NUM;c onsumeia c ount count?pnntfC消费者消费产品总数为:%dncoiint);向缓冲区取出产品Sleep(3000);ReleaseMutex(niiite

4、x);ReleaseSemaphoreempty. l.NULL);膳放互斥信号量释放自然信号量/生产肴进程句柄,消费者进程句柄生产者进程句柄HANDLE pTlueadPRO-HANDLE cTlueadCON;HANDLE oThiead;hit oprationQmt a=getcliai();return a;void Start()mt i;foi(L=03PRO: i卄) pTlueadLMrieateTluead(NULL,0,(LPTHElEAD_START_ROUTINE)PiocluceLNULL,0,NULL);滋瘠縫 *%、一 foi(i=0;iCON ;i+) cTh

5、ieadi=CieateThiead(NULL,0.(LPTHREAD_STARr_ROUTINE)CoiisuiiieLNULLR0.NULL)创建消费者线程: -丁 PoThrmdYimleThr 比 d(NULL、(X(LPTHREAD_START_ROUTINE)opmtion,NULLONULL); iiit isopration=opiation();if(isopration=0)for(i=0PRO,i+)CloseHandle(pTlneadi);fbr(i=0-iPROu+-F) CloseHandle(cThreadi); :yCloseHandle(oThiead);oThiead=CieateTliread(NULL,0,(LPTHREAD_STARr_ROUTINE)opiatioii.NULL,0,NULL);结束操作线程创建互斥信号量miitex=CreateMutex(NUIXTALSE/inutexr,);1 qI卜. 一 r* -9fiill=C毗S亡mnphow(NULLONUM、tmpryHandl严);创建满缓冲区信号量、初始化为0; 亡 uipty=Cmt 亡 Sem

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论