多线程编程技术开发资料

多线程编程技术开发资料

ID:12183595

大小:464.50 KB

页数:127页

时间:2018-07-16

多线程编程技术开发资料_第1页
多线程编程技术开发资料_第2页
多线程编程技术开发资料_第3页
多线程编程技术开发资料_第4页
多线程编程技术开发资料_第5页
资源描述:

《多线程编程技术开发资料》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、多线程编程技术开发资料目录Win32多线程的性能(1)1Win32多线程的性能(2)10关于多线程的一些细节23用VC++5.0实现多线程的调度和处理25一多任务,多进程和多线程25二基于MFC的多线程编程26三编程实例29用VC++5实现多线程35Windows95下多线程编程技术及其实现40多线程编程应注意的问题44多线程程序设计45VisualC++5.0中的多线程编程技术50关于线程62采用多线程进行数据采集64循环创建多线程时保证参数的有效性67MFC中多线程的应用70线程通信初探84V

2、C++多线程下内存操作的优化88任务,过程,和线程95使用临界段实现优化的进程间同步对象-原理和实现100 Win32多线程的性能(1)作者:Microsoft公司供稿 RuedigerR.AscheMicrosoftDeveloperNetwork技术小组摘要  本文讨论将单线程应用程序重新编写成多线程应用程序的策略。它以Microsoft?Windows?95和WindowsNT?的平台为例,从吞吐量(throughput)和响应方面,与兼容的单线程计算相比较而分析了多线程计算的性能。127介

3、绍  在您所能够找到的有关多线程的资料中,多数都是讲述同步概念的。例如,如何串行化(serialize)共享公共数据的线程。这种把重点放在讨论同步上是有意义的,因为同步是多线程编程中不可缺少的一部分。本文则后退了一步(takesastepback),主要讨论有关多线程中很少有人涉及的一面:决定一个计算如何能够被有意义地拆分为多个线程。本文中所使用的示例程序,THRDPERF,在Microsoft?Windows?95和WindowsNT?两个平台之上,针对同一个计算采取串行和并发两种方法分别实现了

4、测试套件(testsuite),并从吞吐量和性能两方面来比较它们。  本文的第一部分建立了一些有关多线程应用程序的词汇(vocabulary),讨论测试套件的范围,并且介绍了示例程序套件是如何设计的。第二部分讨论测试的结果,并且包括对于多线程应用程序设计的建议。与之相关的文章"InteractingwithMicrosoftExcel:ACaseStudyinOLEAutomation"讨论有关该示例程序套件的一个有趣的问题,即使用测试集合所获得的数据是如何使用OLEAutomation被输入Mi

5、crosoftExcel中的。  如果您是经验丰富的多线程应用程序编程者,您可以跳过介绍部分,而直接到下面的“结果”部分。多线程词汇  很长一段时间以来,您的应用程序一直被使用——它运转出色,是可以信赖的,而且thewholebit——但它十分的迟缓,并且您有如何利用多线程的想法。但是,在开始这样做之前请稍等一会儿,因为这里有许多的陷阱,它们使您相信某种多线程设计是非常完美的,但实际上并不是这样。  在您跳至有关要进入的结论之前,首先让我们澄清一下在本文中将不讨论的内容:在MicrosoftWin

6、32?应用程序编程接口(API)下提供多线程访问的库是不同的,但是我们不关注这一问题。示例程序套件,Threadlib.exe,是在一个MicrosoftFoundationClassLibrary(MFC)应用程序中使用Win32多线程API来编写的,但是,您是使用MicrosoftC运行时(CRT)库、MFC库,还是单纯的(barebones)Win32API来创建和维持线程,我们并不关心。127  实际上,每一种库最后都要调用Win32系统服务CreateThread来创建一个工作线程,并且

7、多线程本身总是要通过操作系统来执行。您想要使用哪一种包装机制将不会影响本文的论题。当然,您是使用某一个还是使用其它的包装库(wrapperlibrary),可能会引起性能上的差异,但是在这儿,我们主要讨论多线程的本质,而不关心其包装(wrapper)。本文所讨论的是在单处理器机器上运行的多线程应用程序。多处理器计算机则是一个完全不同的主题,并且本文中所讨论的结论,几乎没有一个可以应用于多处理器的机器中。我还没有这样的机会在一个运行WindowsNT系统的可调整的(scalable)对称多线程(SM

8、P)机器上执行该示例。如果您有这样的机会,我非常高兴地希望知道您的结果。在本文中,我更喜欢一般性地引用“计算”。计算被定义为您的应用程序的一个子任务,可以被作为整体或部分来执行,可以早于或迟于另一个计算,或者与其他的计算同时发生。例如,让我们假设某个应用程序需要用户的数据,并且需要保存这些数据到磁盘。我们可以假定输入数据包含一种计算,而保存这些数据则是另一种计算。根据应用程序的计算的设计,下面两种情况都是可能的:一种是数据的保存和新数据的输入是同时交叉进行的;另一种是直到用户已经输

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。