多线程编程技术开发资料.doc

  1. 1、本文档共127页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE PAGE 128 多线程编程技术开发资料 目录 Win32 多线程的性能(1) 1 Win32 多线程的性能(2) 10 关于多线程的一些细节 23 用VC++5.0 实 现 多 线 程 的 调 度 和 处 理 25 一 多 任 务, 多 进 程 和 多 线 程 25 二 基 于MFC 的 多 线 程 编 程 26 三 编 程 实 例 29 用VC++5实现多线程 35 Windows95下多线程编程技术及其实现 40 多线程编程应注意的问题 44 多线程程序设计 45 Visual C++ 5.0中的多线程编程技术 50 关于线程 62 采用多线程进行数据采集 64 循环创建多线程时保证参数的有效性 67 MFC中多线程的应用 70 线程通信初探 84 VC++多线程下内存操作的优化 88 任务,过程,和线程 95 使用临界段实现优化的进程间同步对象-原理和实现 100 ? Win32 多线程的性能(1) 作者:Microsoft公司供稿 Ruediger R. Asche Microsoft Developer Network 技术小组 摘要   本文讨论将单线程应用程序重新编写成多线程应用程序的策略。它以Microsoft? Windows? 95和Windows NT?的平台为例,从吞吐量(throughput)和响应方面,与兼容的单线程计算相比较而分析了多线程计算的性能。 介绍   在您所能够找到的有关多线程的资料中,多数都是讲述同步概念的。例如,如何串行化(serialize)共享公共数据的线程。这种把重点放在讨论同步上是有意义的,因为同步是多线程编程中不可缺少的一部分。本文则后退了一步(takes a step back),主要讨论有关多线程中很少有人涉及的一面:决定一个计算如何能够被有意义地拆分为多个线程。本文中所使用的示例程序,THRDPERF,在Microsoft? Windows? 95和Windows NT? 两个平台之上,针对同一个计算采取串行和并发两种方法分别实现了测试套件(test suite),并从吞吐量和性能两方面来比较它们。   本文的第一部分建立了一些有关多线程应用程序的词汇(vocabulary),讨论测试套件的范围,并且介绍了示例程序套件是如何设计的。第二部分讨论测试的结果,并且包括对于多线程应用程序设计的建议。与之相关的文章 Interacting with Microsoft Excel: A Case Study in OLE Automation 讨论有关该示例程序套件的一个有趣的问题,即使用测试集合所获得的数据是如何使用 OLE Automation被输入 Microsoft Excel 中的。   如果您是经验丰富的多线程应用程序编程者,您可以跳过介绍部分,而直接到下面的“结果”部分。 多线程词汇   很长一段时间以来,您的应用程序一直被使用——它运转出色,是可以信赖的,而且 the whole bit——但它十分的迟缓,并且您有如何利用多线程的想法。但是,在开始这样做之前请稍等一会儿,因为这里有许多的陷阱,它们使您相信某种多线程设计是非常完美的,但实际上并不是这样。   在您跳至有关要进入的结论之前,首先让我们澄清一下在本文中将不讨论的内容: 在 Microsoft Win32? 应用程序编程接口(API)下提供多线程访问的库是不同的,但是我们不关注这一问题。示例程序套件,Threadlib.exe,是在一个Microsoft Foundation Class Library (MFC)应用程序中使用Win32多线程API来编写的,但是,您是使用Microsoft C运行时(CRT)库、MFC库,还是单纯的(barebones) Win32 API来创建和维持线程,我们并不关心。   实际上,每一种库最后都要调用 Win32 系统服务CreateThread来创建一个工作线程,并且多线程本身总是要通过操作系统来执行。您想要使用哪一种包装机制将不会影响本文的论题。当然,您是使用某一个还是使用其它的包装库(wrapper library),可能会引起性能上的差异,但是在这儿,我们主要讨论多线程的本质,而不关心其包装(wrapper)。 本文所讨论的是在单处理器机器上运行的多线程应用程序。多处理器计算机则是一个完全不同的主题,并且本文中所讨论的结论,几乎没有一个可以应用于多处理器的机器中。我还没有这样的机会在一个运行 Windows NT 系统的可调整的(scalable)对称多线程(SMP)机

文档评论(0)

小教资源库 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档