- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C_第16章_多任务和多线程编程
第16章 多任务与多线程编程;本章主要教学内容;第16章 多任务与多线程编程;16.1 程序、进程和线程概述;;;16.1.1 多任务、进程和线程; 一个进程可以有一个或多个线程,其中一个是主线程。;16.2 线程的种类;16.16.1 MFC中的线程类;16.16.1 MFC中的线程类;16.16.2 用户界面线程(UI);16.16.3 工作者线程;16.3 线程的创建、启动和终止;一、AfxBeginThread函数用来创建工作者线程的调用格式:;;;;16.函数返回值的说明:;;;CWinThread* pWinThread;
pWinThread=AfxBeginThread(
ControlFunction,
pParam,
THREAD_PRIORTY_NORMAL,
0,
CREATE_SUSPENDED,
NULL);;;;;;;16.3.3 线程的终止;16.3.3 线程的终止;16.3.3 线程的终止;VOID WINAPI ExitProcess( UINT uExitCode ); ;16.4.1 线程的运行状态的设置;16.4.1 线程的运行状态的设置;16.4.2 线程的优先级;16.4.2 线程的优先级;16.4.2 线程的优先级;16.4.2 线程的优先级;16.4.2 线程的优先级;16.4.2 线程的优先级;16.4.2 线程的优先级;16.4.3 线程间的通信;16.4.3 线程间的通信;16.4.3 线程间的通信;16.4.3 线程间的通信;16.4.3 线程间的通信;三、使用同步类来实现线程之间的通信和控制
在16.5小节中将详细介绍;16.5 在VC++环境中使用同步对象;16.5 在VC++环境中使用同步对象;16.5 在VC++环境中使用同步对象;16.5.1 事件对象;16.5.1 事件对象;16.5.1 事件对象;16.5.1 事件对象; 补充说明:在MFC中,CEvent类对象有两种类型,分别是所谓的手工事件和自动事件。对于自动事件,当其获得信号后,就会释放下一个可用的线程。一个自动 CEvent对象在被至少一个线程释放后会自动返回到无信号状态;而人工事件对象获得信号后,释放所有可利用线程,直到调用成员函数ReSetEvent()将其设置为无信号状态时为止。
注意:在创建CEvent类的对象时,默认创建的是自动事件。 ;16.5.1 事件对象;16.5.1 事件对象;16.5.1 事件对象;16.5.1 事件对象;16.5.1 事件对象;16.5.1 事件对象;16.5.1 事件对象;6. WaitForSingleObject( ):
其原型声明如下:
DWORD WaitForSingleObject(
HANDLE hHandle,
DWORD dwMilliseconds
); 当在线程的执行函数中调用该函数时,线程暂时挂起,系统监视hHandle所指向的对象的状态。如果经过dwMilliseconds毫秒后,hHandle指向的对象变为有信号状态,则WaitForSingleObject()返回,线程被释放,且返回值为WAIT_TIMEOUT;如果在挂起的dwMilliseconds毫秒内,线程所等待的对象在某一时刻变为有信号,则该函数立即返回,返回值为WAIT_OBJECT_0。; 参数dwMilliseconds有两个具有特殊意义的值:0和INFINITE。若为0,则该函数立即返回;若为INFINITE,则线程一直被挂起,直到hHandle所指向的对象变为有信号状态时为止。; CEvent::ResetEvent( )把对象设置为无信号状态,程序在WaitForSingleObject(hHandle,INFINITE)处等待。
CEvent::SetEvent( )把对象设置为有信号状态,释放等待的线程。
如果CEvent对象为自动事件,则当WaitForSingleObject(hHandle,INFINITE)返回时,自动把CEvent对象重置为无信号状态。; B线程在执行到CEvent类成员函数Lock( )时将会发生阻塞,而A线程此时则可以在没有B线程干扰的情况下对共享资源进行处理,并在处理完成后通过成员函数SetEvent( )向B发出事件,使其被释放,得以对A先前已处理完毕的共享资源进行操作。 ;16.5.2 临界区;16.5.2 临界区;16.5.2 临界区;1
您可能关注的文档
- 2012统计分析在EXCEL实现测验与答案.doc
- 2012年6月7日升级神舟p170c(2003年买老机器给老妈学电脑用,花了100元).doc
- 2013.12英语六级写作详解和参考范文.doc
- 2013-2014学年高二英语: Unit 2 Poems-Language points(新人教版选修6).ppt
- 201306017-枇杷叶研究进展1.doc
- 2013中高级口译笔试翻译译题与答案by谢伯昌.doc
- 2012统计继续教育-统计分析在EXCEL实现测验答案.doc
- 2013届中考英语 知识点回顾冲刺 Book 8A Modules 11-12(基础过关+考点透视+典例解析) 外研版.ppt
- 2013届松江区高三二模英语试卷与答案.doc
- 2013年01月新实施标准信息提示.doc
最近下载
- 理想 RISO 9050 7050 3050 7010 3010 闪彩印王中文技术维修手册 后面可以参考理想闪彩印王 EX7200 EX9050 EX9000 EX7250 系列中文维修手册 .pdf VIP
- 表面波波速测试.ppt VIP
- 食品安全法全文.docx VIP
- 监狱日用品供应站项目 投标方案(技术方案).docx
- 2025年池州市住房和城乡建设系统架子工职业技能竞赛暨省级劳动和职业技能竞赛(架子工)选拔赛理论知识题库及答案(360题).docx VIP
- 人保理赔员车险查勘定损考试题库(答案).pdf VIP
- 普外科案例分析病例分析题与答案.docx VIP
- 外研九年级英语上册Module-4-Unit1-课件(共29张PPT).ppt VIP
- 随机事件的概率.docx
- 《教育心理学》课件——第七章 学习策略.pptx VIP
文档评论(0)