C_第10章 多线程操作.pptVIP

  1. 1、本文档共44页,可阅读全部内容。
  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文档。上传文档
查看更多
C_第10章 多线程操作

第 10 章 齐头并进完成任务——多线程操作 多线程和多线程的实现 线程间数据同步 带参数的线程 线程池 第 10 章 齐头并进完成任务——多线程操作 多线程和多线程的实现 线程间数据同步 带参数的线程 线程池 10.1 多管齐下--多线程和多线程的实现 多任务是在同一时间内执行多个任务,在软件开发的过程中,使用多线程技术,可以提高程序的用户满意度,可以把占据长时间的程序中的任务放到后台去处理,目前在桌面系统占主流的操作系统Windows系列,就是多任务体系的典型代表,或者当用户点击了一个按钮去触发按钮的单击事件,可以弹出一个进度条来显示处理的进度,而不至使用户误会当前任务的状态。 10.1.1 线程的概念 在谈论线程之前,首先要了解进程。什么是进程呢?进程为应用程序的运行实例,是应用程序的一次动态执行。 一个进程是由多个线程所组成的,线程是程序执行的基本原子单位,一个进程可以由多个线程组成。线程是“进程”中某个单一顺序的控制流。线程是进程中的一个基本执行流,每个线程都有自己专属的寄存器(程序计数器、栈指针等),代码区共享,不同的线程可以执行同样的函数。 我们现在可以坐在电脑旁边,边操作计算机使用媒体播放器播放mp3,边使用PowerPoint,而这些任务之间丝毫不会相互干扰,这些都得益于多线程带来的好处。 多线程可以实现并行处理,避免了某项任务长时间占用CPU时间。要注意的是,多线程程序对于效率应该根据任务不同的要求来选择:如果两个非常活跃的线程为了抢夺对CPU的控制权,在线程切换时会消耗的CPU资源,反而会降低系统的性能。 10.1.2 线程执行函数 在线程的相关知识中,Thread类是最重要的一个,所有起步的信息都包含在Thread类中。 Thread类提供了创建并控制线程,设置其优先级并获取其状态的方法。该类包含在System.Threading命名空间中。如果你想在你的应用程序中使用多线程,就必须包含Thread类,而在使用Thread类之前,您的程序一定要使用如下语句,把System.Threading命名空间包含进来: using System.Threading; Thread类中拥有4个重载的构造函数,使用最为广泛的是: public Thread( ThreadStart start) 参数:start 参数类型:System.Threading ThreadStart ThreadStart委托,它表示此线程开始执行时要调用的方法。 需要注意的是,ThreadStart是一个委托,在创建线程时,在该线程上执行的方法将通过一个传递给 Thread构造函数的 ThreadStart 委托来表示。在调用 Start 方法之前,该线程不会开始执行。 下面我们举个例子来说明Thread的声明。 01 //C#中的线程演示 02 class ThreadSimple//定义类 03 { 04 //静态线程函数 05 public static void ThreadMethodExample(){ 06 } 07 //调用静态方法 08 Thread ThreadSimple = new Thread (ThreadSimple .ThreadMethodExample) 在这个实例中,创建了一个线程对象ThreadSimple,并且清楚的告诉了我们静态线程函数的使用。在实际的代码编写时,还可以使用更简单的线程定义方式: 01 Thread ThreadSimple = new Thread(new ThreadStart(ThreadMethodExample)); 很多人都认为第一种方式有点复杂,而愿意采用第二种更简单的方式定义线程,两种方式的效果是完全一样,第二种方式写出的程序更简洁。 10.1.3 启动线程 现在我们有了一个线程,如何启动这个线程呢?在Thread中提供了Start方法,通过调用该方法,可以启动线程。 Thread.Start方法 启动线程:即新建并启动一个线程的代码如下。 ThreadSimple.Start(); 在Thread这个类以对象的方式提供一些必要的实例成员,其中下面这些是比较常用的: ⑴ IsAlive:判断线程是否处于活动状态。 ⑵ Name:线程的名称。 ⑶ Priority:ThreadPriority枚举类型,代表线程的优先级。 ⑷ ThreadState:ThreadState枚举类型,代表线程的状态。 ⑸ Start:启动一个线程。 ⑹ Suspend:挂起一个线程的运行。 ⑺ Resume:继续挂起的线程。 ⑻ Abort:结束一个线程的运行。 当线程

文档评论(0)

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

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

1亿VIP精品文档

相关文档