第6章 线程的基础知识.PDFVIP

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

下载 第6章 线程的基础知识 理解线程是非常关键的,因为每个进程至少需要一个线程。本章将更加详细地介绍线程的 知识。尤其是要讲述进程与线程之间存在多大的差别,它们各自具有什么作用。还要介绍系统 如何使用线程内核对象来管理线程。与进程内核对象一样,线程内核对象也拥有属性,我们将 要观察许多用于查询和修改这些属性的函数。此外还要介绍可以在进程中创建和生成更多的线 程时所用的函数。 第4章介绍了进程是由两个部分构成的,一个是进程内核对象,另一个是地址空间。同样, 线程也是由两个部分组成的: • 一个是线程的内核对象,操作系统用它来对线程实施管理。内核对象也是系统用来存放 线程统计信息的地方。 • 另一个是线程堆栈,它用于维护线程在执行代码时需要的所有函数参数和局部变量(第 1 6章将进一步介绍系统如何管理线程堆栈)。 第4章中讲过,进程是不活泼的。进程从来不执行任何东西,它只是线程的容器。线程总 是在某个进程环境中创建的,而且它的整个寿命期都在该进程中。这意味着线程在它的进程地 址空间中执行代码,并且在进程的地址空间中对数据进行操作。因此,如果在单进程环境中, 你有两个或多个线程正在运行,那么这两个线程将共享单个地址空间。这些线程能够执行相同 的代码,对相同的数据进行操作。这些线程还能共享内核对象句柄,因为句柄表依赖于每个进 程而不是每个线程存在。 如你所见,进程使用的系统资源比线程多得多,原因是它需要更多的地址空间。为进程创 建一个虚拟地址空间需要许多系统资源。系统中要保留大量的记录,这要占用大量的内存。另 外,由于. e x e和. d l l文件要加载到一个地址空间,因此也需要文件资源。而线程使用的系统资源 要少得多。实际上,线程只有一个内核对象和一个堆栈,保留的记录很少,因此需要很少的内 存。 由于线程需要的开销比进程少,因此始终都应该设法用增加线程来解决编程问题,而要避 免创建新的进程。但是,这个建议并不是一成不变的。许多程序设计用多个进程来实现会更好 些。应该懂得权衡利弊,经验会指导你的编程实践。 在详细介绍线程之前,首先花一点时间讲一讲如何正确地在应用程序结构中使用线程。 6.1 何时创建线程 线程用于描述进程中的运行路径。每当进程被初始化时,系统就要创建一个主线程。该线 程与C / C + +运行期库的启动代码一道开始运行,启动代码则调用进入点函数( m a i n 、w m a i n 、 Wi n M a i n或w Wi n M a i n ),并且继续运行直到进入点函数返回并且 C / C + +运行期库的启动代码调 用E x i t P r o c e s s为止。对于许多应用程序来说,这个主线程是应用程序需要的唯一线程。不过, 进程能够创建更多的线程来帮助执行它们的操作。 每个计算机都拥有一个功能非常强大的资源,即 C P U 。让C P U 闲置起来是绝对没有道理的 (如果忽略节省电能问题的话)。为了使C P U处于繁忙状态之中,可以让它执行各种不同的工作。 下面是一些例子: 122计计第二部分 编程的具体方法 下载 • 可以打开Microsoft Windows 2000配备的内容索引服务程序。它能够创建一个低优先级的 线程,以便定期打开你的磁盘驱动器上的文件内容并给内容做索引。若要找到一个文件, 可以打开Search Result (搜索结果)窗口(方法是单击S t a r t按钮,从S e a r c h菜单中选定 For Files Or Folders ),再将你的搜索条件输入Containing Te x t域。这时就可以搜索到索引, 相关的文件就会立即显示出来。内容索引服务程序大大改进了性能,因为每次搜索不必 打开、扫描和关闭磁盘驱动器上的每个文件。 • 可以使用Windows 2000配备的磁盘碎片整理软件。通常情况下,这种类型的实用程序拥 有许多管理选项,一般用户可能不懂,比如该实用程序应该相隔多长时间运行一次,何 时运行。使用低优先级线程,可以在后台运行该实用程序,并且在系统空闲时对驱动器 进行碎片整理。 • 可以很容易地设想将来版本的编译器,每当暂停键入时,它就可

文档评论(0)

专业好文档 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:6110200002000000

1亿VIP精品文档

相关文档