收藏 分享(赏)

实验一 进程的同步与互斥.doc

上传人:tkhy51908 文档编号:4573189 上传时间:2019-01-02 格式:DOC 页数:2 大小:30KB
下载 相关 举报
实验一 进程的同步与互斥.doc_第1页
第1页 / 共2页
实验一 进程的同步与互斥.doc_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

1、实验一 进程的同步与互斥1、实验目的(1)加深对进程概念的理解,明确进程和程序的区别。(2)进一步认识并发执行的实质。(3)分析进程竞争资源现象,学习解决进程互斥的法。(4)了解 Windows 对进程管理的支持。二、实验类型观察/分析型。3、预习内容预习进程管理有关理论和 VC+对进程管理的支持, 包括进程的基本操作和经典的进程同步与互斥问题。4、实验要求本实验通过学习和分析三个简单的 Windows 线程编程编写一个简单的生产者/消费者问题实例程序。利用(1)和(2)中的 Windows 进程和线程创建法实现一个简单的读者,写者程序,读者将110 十个数字依次填入临界资源区 gData,当

2、且仅当 gData 被读者消费后,写者才可以写入下一个数。5、实验代码#include “windows.h“#include #include #include const int writerNum = 1;const int readerNum = 1;int gData = 0;bool continu = true; HANDLE hmutex; HANDLE hfullsemaphore; HANDLE hemptysemaphore; DWORD WINAPI reader(LPVOID lppara)while(continu)WaitForSingleObject(hempt

3、ysemaphore,INFINITE);WaitForSingleObject(hmutex,INFINITE);if(gData = 11)continu = false;break;Sleep(100);printf(“readers gets data:%dn“, gData);printf(“n“);ReleaseMutex(hmutex);ReleaseSemaphore(hfullsemaphore,1,NULL);return NULL;DWORD WINAPI writer(LPVOID lppara)while(continu)WaitForSingleObject(hfu

4、llsemaphore,INFINITE); WaitForSingleObject(hmutex,INFINITE);if(gData = 10)continu = false;break;Sleep(100);gData+;printf(“writer gets data:%dn“, gData);printf(“n“);ReleaseMutex(hmutex); ReleaseSemaphore(hemptysemaphore,1,NULL);return NULL;int main()hmutex = CreateMutex(NULL,false,NULL);hfullsemaphore = CreateSemaphore(NULL,1,1,NULL);hemptysemaphore = CreateSemaphore(NULL,0,1,NULL);DWORD readerdata;DWORD writerdata;for (int i=0;iwriterNum;i+)if(CreateThread(NULL,0,writer,NULL,0,for (int j=0;jreaderNum;j+)if(CreateThread(NULL,0,reader,NULL,0,printf(“Program ends successfullyn“);return 0;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 中学实验

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报