第三十三章 多执行绪(Multi-Thread) C++ Builder PPT课件 简体中文版.pptVIP

第三十三章 多执行绪(Multi-Thread) C++ Builder PPT课件 简体中文版.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三十三章多执行绪(Multi-Thread)CBuilderPPT课件简体中文版

第三十三章 多执行绪(Multi-Thread) 在这一章,我们将会提到Multi-Thread到底是什么东西,他在BCB的环境中该如何实作,并且实际了解在程序中使用Multi-Thread会带来什么样的优点与缺点。 大纲 33-1. 什么是Thread 33-2. 第一个Thread程序 33-3. Thread程序的应用 本章习题 33-1. 什么是Thread 常常可以听到很多操作系统的广告上都会声称自己拥有『多任务』的处理模式,也有很多操作系统都支持『多处理器』的系统,其实这些多任务或是多处理器的运作基础都是『Multi Thread』。我们先用两张图来表示什么是Non Thread的运作模式,什么是Multi Thread的运作模式。 33-1. 什么是Thread 利用上面这两张图来做解释,在整个运作的时间内总共有三个Process在运作。假设现在我们使用的是Non Thread的模式在运作,这三个Process必须排队,等前面那一个Process结束了才可以进行下一个Process的操作;反之,在Multi Thread的运作模式下,只要该Process一进入CPU的处理排程内,就可以马上获得CPU Time来运作,只不过这三个Process在这种情况下并无法独占整个CPU的资源,并须和其它的Process共享。 33-1. 什么是Thread 不管在Non Thread或是Multi Thread的运作模式中,在一样的资源下效能并不会有什么增进,甚至在Multi Thread的模式下还会花比较久的时间才能完成(因为有许多Content Switching或是Interrupt的动作)。 不过因为在Multi Thread的情况下可以多个程序一起执行,所以在使用上会比较方便,除非有自行调整各个Thread的优先权,否则在同一台机器上的Thread的优先权都是平等的! 例如我们在计算机上可以一边使用Word,听mp3,使用Visio画图,利用浏览器搜寻网页,写程序等等,只要计算机够Powerful,这些事情都可以在同一个时间做,因为现在的OS(Operating System)都已经支持多任务了,只是越多工作同时进行,执行的效率也会越低。 33-1. 什么是Thread 除了上述我们举了一个大家常『接触』到的多任务环境外,在Server等级的机器上,多任务更是显的重要,例如现在有100个人想要利用这台服务器工作,如果没有了多任务,这台Server大概会被使用者唾弃,因为他每次只能处理一个Request,大家光是在排队等CPU Time的时间就浪费了不少。 反之,如果有多任务的机制存在,Server可以将这些要求全部Create成Thread,并且将他们都放到背景执行,这样将不会造成有些程序一直等待的情况。 33-1. 什么是Thread 下图就是我们针对一个Process将他分成多个Thread,让这些Thread都可以同时取得CPU的资源,如果将下图的Process换成『Machine』,Thread换成『Process』,这就是我们上面一直提到的多任务处理了。 33-1. 什么是Thread 从前面的介绍可以得知,Thread在执行的时候并不是『一直』都在执行,而是断断续续的执行,所以这之间就会有许多Interrupt和Content Switching等相关System Work需要处理,当一个Thread暂时失去CPU Time的时候,就是进入Sleep的状态,我们用下图来告诉各位,一个Thread的Life Cycle倒底是长什么样子! 33-2. 第一个Thread程序 在这一小节我们将利用范例33-1建立一个最基本的Thread程序。我们在底下将会一步一步引导着各位读者完成该范例。 首先我们先简单的介绍该如何在BCB中建立一个Thread Object。 要在BCB中建立一个Thread Object最简单就是在New的对话窗中选择『Thread Object』,接着会跳出一个对话窗让我们输入该Thread Object的『Class Name』;底下则还有一个『Check Box』让我们决定是不是要设定『Thread Name』。 当我们设定了Thread Name之后,BCB将会在Thread start的时候自动去呼叫『SetName』这个Method。 当我们按下对话窗『OK』的按钮后,BCB就会自动帮我们Generate出该Thread的相关程序代码,这个Thread该做什么事情就是由这个『unit.cpp』所决定的! 33-2. 第一个Thread程序 在BCB自动产生的程序代码中有三个重要函式 『Synchronize(UpdateCaption)』 在这段预设产生的程序代码中有一小

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档