eilNET Winws编程系列课程():多线程编程.pdf

eilNET Winws编程系列课程():多线程编程.pdf

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
.NET多线程编程 讲师:邵志东 课前准备 • Dot Net FrameWork • VS.NET 2002/2003 • C#/VB.NET • Level 200 .NET Windows编程 1. Windows编程基础 8. 图像编程 2. C#和面向对象编程 9. 文件和流编程 10.注册表编程 3. 常用控件 11.Windows服务 4. 对话框编程 12.多线程编程 5. 菜单、工具栏 13.ADO.NET2.0 6. 图形编程 14. 网络编程 7. 程序交互 15.消息处理 16.程序部署 议程 • 线程原理概述 • .NET下的多线程编程 • 线程池 • 异步编程 • 多线程应用 线程基本概念 • 线程是程序执行的基本原子单位. 一个进程可以由多个线 程组成. • 每个线程都维护异常处理程序、调度优先级和一组系统用 于在调度该线程前保存线程上下文的结构。线程上下文包 括为使线程在线程的宿主进程地址空间中无缝地继续执行 所需的所有信息,包括线程的CPU 寄存器组和堆栈。 • 在分布式编程中,正确使用线程能够很好的提高应用程序 的性能及运行效率.实现原理是将一个进程分成多个线 程,然后让它们并发异步执行,来提高运行效率. • 并发执行并不是同时执行( 占有CPU),任意时刻还是只能 有一个线程占用CPU,只不过是它们争夺CPU频繁一些, 感觉到他们似乎都在运行. 进程举例 设一个进程要完成两个任务:任务1和任务2,并且任务1 要经历: A1-B1-C1三个步骤才能完成;任务2要经历: A2-B2-C2三个步骤才能完成。 1. 如果两个任务同步执行的话完成两个任务是这样执行的: 花费时间段: 1 2 3 4 5 6 A1-B1-C1-A2-B2-C2 这样从A1一直到c2只能一个一个地执行. 当A1 占用CPU 执行时,从B1到C2线程只能在等待. 2. 如果两个任务异步执行的话,完成两个任务是这样执行的: 花费时间段: 1 2 3 4 5 6 A1-B1-C1 A2-B2-C2 这样,任务1和任务2就分成两个独立的执行对象. 什么时候用线程? • 一般情况下,如果多个线程在执行时都要抢占某 一个资源或某几个资源,则最好不用异步线程执 行.因为它们是并发执行,很可能同时争夺某个资 源有CPU,这时要么执行资源分配算法(比如要判 断哪个线程优先级高,这要花费时间),或者是按时 间片算法(这样要付出轮询CUP/交接/让出CPU 所需的时间). • 如果多个线程所需要的系统资源是比较均匀的, 这时完全可以让它们异步并发执行, 使用线程的缺点 • 统将为进程和线程所需的上下文信息使用内存。 因此,可以创建的进程、AppDomain 对象和线 程的数目会受到可用内存的限制。 • 跟踪大量的线程将占用大量的处理器时间。如果 线程过多,则其

文档评论(0)

asd3366 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档