操作系统课程设计 - - 用多线程同步方法解决生产者 (3)
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。
buffer[out]=0; //从Buffer中取出产品 out=(out+1)%BUFFER_SIZE; //取指针调整,为下次取做准备 printAll(); ReleaseMutex(mutex); //信号量解锁 ReleaseSemaphore(empty,1,NULL); //空缓冲区加1 }while(1); } 5 详细设计 5.1 源程序代码 #include #include #include #include #include using namespace std; DWORD WINAPI Producer(LPVOID); DWORD WINAPI Consumer(LPVOID); #define WINAPI_stdcall #define THREAD_NUM 20 #define BUFFER_SIZE 20 //20个缓冲区 int buffer[20]={0}; HANDLE empty; HANDLE full; HANDLE mutex; //for mutual exclusion进程信号量 int in=0; //point to the next free positon int out=0; //point to the first full positon //把所有的缓冲区输出到屏幕上 void printAll(){ int i; for(i=0;i<20;i++) cout<进入Windows开发环境后,通过Vs2012编辑器在其中编写。进入Vs2012的命令,对程序执行编译运行命令后,即可在屏幕上显示出程序运行的结果,其运行结果如下图5所示:
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新工程科技操作系统课程设计 - - 用多线程同步方法解决生产者 (3)全文阅读和word下载服务。
操作系统课程设计 - - 用多线程同步方法解决生产者 (3).doc
将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印