电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

操作系统生产者消费者问题C语言

操作系统生产者消费者问题C语言_第1页
1/6
操作系统生产者消费者问题C语言_第2页
2/6
操作系统生产者消费者问题C语言_第3页
3/6
《操作系统概念》第七版中的实验项目:生产者消费者问题。本程序中,main()函数需要 三个参数:主线程休眠时间;生产者线程数;消费者线程数。各线程的休眠等待时间是随机 的。程序代码:#include〈 stdio h>#include#include〈windows.h>#define BUFFER_SIZE 5typedef int buffer_;itemstruct v{int ;i);buffer_item buffer[BUFFER_SIZE+1buffer_item front=0,re;ar=0HANDLE mutex , empty,full;int insert_i(ebuffer_item item){/*insert item into bufferreturn 0 if successful,otherwisereturn-1 indicating an error cond/tionif((rear+1 弘(BUFFER_SIZE+1)==front )return 1;buffer[rear=itemrear=(rear+1)%(BUFFER_SIZE+1);return 0;}int remove_item(buffer_item *item){/*remove an object from bufferplacing it in itemreturn 0 if successful,otherwisereutrn-1 indication an error condition */if(front == r)earreturn ;1* item=buffef front];front=(front+) % (BUFFER_SIZE+1);return 0;DWORD WINAPI producer (PVOID Param ) {int randlstruct v data=*(struct) Waram;srand((unsigned)time 0));while (1{Sleep(rand()%101*10WaitForSingleObjectempty, INFINITE );WaitForSingleObject(mutexINFINITE );rand1 =ran();printf "producer has producerd %d Byn%drand1 data i);if( insert_itemrand1))printf("insert data n’rrb;r!\ReleaseMutex(mutex)ReleaseSemaphore(full, NULL);}}DWORD WINAPI consumer(PVOID Param ){int rand1;struct v dat

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

操作系统生产者消费者问题C语言

确认删除?
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群