2022年操作系统实验--多线程同步 .pdf
《2022年操作系统实验--多线程同步 .pdf》由会员分享,可在线阅读,更多相关《2022年操作系统实验--多线程同步 .pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一、实验目的和内容1、实验目的在掌握基于消息的windows 程序结构和多线程程序设计方法的基础上,设计一个多线程同步的程序。使学生能够从程序设计的角度了解多线程程序设计的方法和在windows 系统下多线程同步互斥的机制。2、实验内容理解 Windows 程序设计的基本思想,理解基于消息的程序设计方法,能够设计出简单的基于事件的windows 程序,完成基本控件的使用结合操作系统中信号量与互斥体的概念,在MFC 中找到对应的相关类。设计一个多线程同步的程序。二、实验方案1、定义相关的信息,创建生产者和消费者线程。设定生产和消费的规则,初步设定没生产两个产品就将其中一个取出消费。2、设定一个循
2、环队列,作为缓冲区,设计生产者消费者算法。3、使用互斥的思路,当缓冲区满时迫使生产者等待,当缓冲区空时迫使消费者等待。4、源代码#include#include using namespace std;unsigned short ProductID=0,ConsumeID=0,in=0,out=0;const unsigned short SIZE_OF_BUFFER=10;/缓冲区长度int g_bufferSIZE_OF_BUFFER;/缓冲区是个循环队列bool g_continue=true;/控制程序结束HANDLE g_hMutex;/用于线程间的互斥HANDLE g_hFull
3、Semaphore;HANDLE g_hEmptySemaphore;DWORD WINAPI Producer(LPVOID);/生产者线程DWORD WINAPI Consumer(LPVOID);/消费者线程const unsigned short PRODUCERS_COUNT=2;/生产者的个数const unsigned short CONSUMERS_COUNT=1;/消费者的个数const unsigned short THREADS_COUNT=PRODUCERS_COUNT+CONSUMERS_COUNT;HANDLE hThreadsPRODUCERS_COUNT;/各线
4、程的 handle DWORD producerIDCONSUMERS_COUNT;/生产者线程的标识符DWORD consumerIDTHREADS_COUNT;/消费者线程的标识符名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 4 页 -void Produce()cout 正在生产第 +ProductID 号产品 ;cout 生产成功 endl;void Append()cout 存放新产品 ;g_bufferin=ProductID;in=(in+1)%SIZE_OF_BUFFER;cout 成功 endl;cout缓冲区情况 endl;for(int i=0;iSIZE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年操作系统实验-多线程同步 2022 操作系统 实验 多线程 同步
限制150内