C#进程和线程详解幻灯片_第1页
C#进程和线程详解幻灯片_第2页
C#进程和线程详解幻灯片_第3页
C#进程和线程详解幻灯片_第4页
C#进程和线程详解幻灯片_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、进程和线程,第 十 六 章,目标,进程和线程的概念 进程的属性和方法 线程的执行 线程的优先级 线程的同步,进程,进程,概念:是应用程序的一次动态执行 命名空间: Diagnostics 类: Process,Diagnostics命名空间 Process类,同时执行所有任务,时间更少,效率更高,线程简介 3-1,读 ,写,一览无遗,血液循环,在同一时间点执行各项进程,编译程序 发送/接收邮件 打印文件 其他,操作系统允许计算机同时执行多项操作,程序 (进程),线程简介 3-2,程序 1,程序 2,线程 1,线程 2,线程 3,线程 1,线程 2,线程 3,单独的执行路径,多线程,线程简介,定

2、义: 是进程中的一个实体,是被系统独立调度和分 派的基本单位,表示计算机执行的指令序列 与进程的区别: 子进程和父进程有不同的代码和数据空间,而多个程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文. 命名空间:Threading 类:Thread,线程简介,在以下情况中可能要使用到多线程:,程序需要同时执行两个或多个任务,程序要等待某事件的发生,例如用户输入、文件操作、网络操作、搜索等,后台程序 优先任务,线程,1)、引入线程名空间 using System.Threading; 2)、创建代理 ThreadStart 代理对象名=new ThreadStart(方法名);

3、 3)、创建线程 Thread 线程对象名=new Thread(代理对象名); 4)、启动线程 线程对象名.Start();,Thread类,线程启动与终止,线程只有启动后才会起作用。启动后,如果没有终止,不能再次启动它 启动线程: 线程对象名.Start(); 终止线程: 线程对象名.Abort();,线程挂起及恢复,临时挂起线程,常见的应用是暂停声音文件或视频文件的播放) 挂起线程: 线程对象名.Suspend(); 恢复线程: 线程对象名.Resume();,线程的优先级,如果在应用程序中有多个线程在运行,但一些线程比另一些线程重要,该怎么办?,可以在一个进程中为不同的线程指定不同的优

4、先级,线程的优先级,高优先级的线程可以阻止低优先级的线程执行,因此在改变线程的优先级时要特别小心。 线程的优先级可以定义为ThreadPriority枚举的值: Highest AboveNormal Normal BelowNormal Lowest 用法: 线程对象名.Priority = ThreadPriority.Highest,优先级示例,Domo,线程同步,使用线程的一个重要方面是同步访问多个线程访问的任何变量。 所谓同步,是指在某一时刻只有一个线程可以访问变量。 如果不能确保对变量的访问是同步的,就会产生错误。,同步关键字-lock,C#为同步访问变量提供了一个非常简单的方式,

5、即使用C#语言的关键字lock,其用法如下所示: lock (x) DoSomething(); ,同步注意问题,不要滥用同步 死锁 竞态条件,同步示例3-1,在书店可能某种书籍只有一本,而两个售货员同时销售这本书,我们可以把两个售货员看作两个线程,那该如何处理呢?,同步示例3-2,using System; using System.Threading; public class BookShop public int num = 1;/共享资源 public void Sale() int tmp; lock (this) /同步控制 tmp = num; if (tmp 0) /卖书过程 Thread.Sleep(1000); num = num - 1; Console.WriteLine(售出一本); else Console.WriteLine(没有了); ,同步示例3-3,public class MyClass public static void Main() BookShop a = new BookShop(); Thread t1 = new Thread(new ThreadStart(a.Sale); Thread t2 = new Thread(new ThreadStar

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论