首页 计算机软件基础(太原科技大学)实验五

计算机软件基础(太原科技大学)实验五

举报
开通vip

计算机软件基础(太原科技大学)实验五《软件开发技术基础》 实验报告 学院: 电子信息工程学院__   班级:    电子131502____    学号:        姓名:              实验五 Windows操作系统并发多线程的应用(2学时) 班 级   电子131502  学 号 201315020232  姓 名 许鹏            第 15 周  星 期 五 第 3 、4节   成 绩 ______            实验类型:验证性 实验要求:必修 实验学时: 2学时 一、实验目的: 加深对Win...

计算机软件基础(太原科技大学)实验五
《软件开发技术基础》 实验 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 学院: 电子信息工程学院__   班级:    电子131502____    学号:        姓名:              实验五 Windows操作系统并发多线程的应用(2学时) 班 级   电子131502  学 号 201315020232  姓 名 许鹏            第 15 周  星 期 五 第 3 、4节   成 绩 ______            实验类型:验证性 实验要求:必修 实验学时: 2学时 一、实验目的: 加深对Windows线程概念及线程同步管理各部门内容的理解;熟悉Windows线程管理API的使用。 二、实验要求: 1、通过上网查阅资料,了解Windows线程同步函数,写出常用的API函数的定义; 2、阅读案例程序,给出程序的详细注解; 3、运行程序,分析程序结果; 4、改写程序实现要求见(四)。 三、实验内容: 以下程序实现多线程同步,其关系如下:父亲、儿子、女儿三人和一个盘子,当盘子空时,父亲往盘中随机放苹果或香蕉,儿子只从盘中拿桔子,女儿只从盘中拿苹果。 四、要求: 1)改写程序,要求为:母亲往盘中随机放苹果或桔子,儿子只从盘中拿苹果,女儿只从盘中拿桔子 2)写出完整的程序并能调试通过即可 五、实验原理: 调用Win32 API中的CreateThread函数创建线程。CreateThread(NULL,0,&TEventWindow::ThreadFunc,this,0,&hThreadId);第一个参数设定线程的安全属性,因其仅用于Windows NT,故不设定。第二个参数为0指定线程使用缺省的堆栈大小。第三个参数指定线程函数,线程即从该函数的入口处开始运行,函数返回时就意味着线程终止运行。第四个参数为线程函数的参数,可以是指向任意数据类型的指针。第五个参数设定线程的生成标志。hThreadId存放线程的标识号。线程函数如下定义,上述的 this参数是指向线程所属窗口的句柄指针,通过thrdWin参数传送过来,利用这个指针再调用相应的LoopFunc函数,线程的具体事务都在这个函数中执行。WaitForSingleObject(hThread, 2000) windows里面的线程同步的api 就是让你这个线程或者说程序停在那里,等别的程序通知你或者说发一个信号量等,然后这个程序在继续运行下去。CloseHandle函数为关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等。在CreateThread成功之后会返回一个hThread的handle,且内核对象的计数加1,CloseHandle之后,引用计数减1,当变为0时,系统删除内核对象。ReleaseSemaphore函数用于对指定的信号量增加指定的值;sleep函数可计算执行挂起的时间;rand函数在产生随机数srand(time(NULL)),可以为rand函数提供不同的种子值,进而产生不同的随机数序列。 六、程序代码: (1)苹果香蕉问题: #include using namespace std; #include #include int k; HANDLE Apple_;CRITICAL_SECTION mmutex; HANDLE Banana_; DWORD WINAPI Son(LPVOID n) {//HANDLE Apple_;CRITICAL_SECTION mmutex; int i=1; //::OpenSemaphore(MUTEX_ALL_ACCESS,false,"Apple_"); while(1) {::WaitForSingleObject(Apple_,INFINITE);//等苹果 cout<<"Son eats"< using namespace std; #include #include int k; HANDLE Apple_;HANDLE Orange_; CRITICAL_SECTION mmutex; DWORD WINAPI Son(LPVOID n) {//HANDLE Orange_;CRITICAL_SECTION mmutex; int i = 1; OpenSemaphore(MUTEX_ALL_ACCESS,false,"Orange_"); while (1) { ::WaitForSingleObject(Orange_,INFINITE);//等桔子 cout<<"Son eats "<
本文档为【计算机软件基础(太原科技大学)实验五】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_421808
暂无简介~
格式:doc
大小:29KB
软件:Word
页数:12
分类:互联网
上传时间:2019-02-17
浏览量:71