C#进程和线程详解ppt课件

上传人:博****1 文档编号:568661038 上传时间:2024-07-25 格式:PPT 页数:23 大小:766.50KB
返回 下载 相关 举报
C#进程和线程详解ppt课件_第1页
第1页 / 共23页
C#进程和线程详解ppt课件_第2页
第2页 / 共23页
C#进程和线程详解ppt课件_第3页
第3页 / 共23页
C#进程和线程详解ppt课件_第4页
第4页 / 共23页
C#进程和线程详解ppt课件_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《C#进程和线程详解ppt课件》由会员分享,可在线阅读,更多相关《C#进程和线程详解ppt课件(23页珍藏版)》请在金锄头文库上搜索。

1、进程和线程进程和线程第第 十十 六六 章章目标目标进程和线程的概念进程和线程的概念进程的属性和方法进程的属性和方法线程的执行线程的执行线程的优先级线程的优先级线程的同步线程的同步进程进程进程进程概念:是应用程序的一次动态执行概念:是应用程序的一次动态执行命名空间:命名空间: Diagnostics类:类: ProcessDiagnostics命名空间命名空间 Process类类类别类别名称名称作用作用(返回值返回值)数据数据类型类型属性属性ProcessName获取进程名称获取进程名称string属性属性ID获取进程唯一标示符获取进程唯一标示符int属性属性Threads进程中的线程集合进程中

2、的线程集合Thread属性属性MachineName获取运行进程的计算机名称获取运行进程的计算机名称string方法方法GetCurrentProcess获取当前的进程获取当前的进程Process静态静态方方法法GetProcesses获取计算机中运行的进程获取计算机中运行的进程Process静态方静态方法法Start启动进程启动进程Process方法方法Kill关闭进程关闭进程void同时执行所有任务,时间更少,效率更高 人 体线程简介线程简介 3-1读 ,写一览无遗血液循环在同一时间点执行各项进程 编译程序 发送/接收邮件 打印文件 其他操作系统允许计算机同时执行多项操作程序(进程)线程简

3、介线程简介 3-2程序 1 程序 2线程 1线程 2线程 3线程 1线程 2线程 3单独的执行路径线程简介线程简介定义:定义: 是进程中的一个实体,是被系统独立调度和分是进程中的一个实体,是被系统独立调度和分派的基本单位,表示计算机执行的指令序列派的基本单位,表示计算机执行的指令序列与进程的区别:与进程的区别: 子进程和父进程有不同的代码和数据空间子进程和父进程有不同的代码和数据空间,而多而多个程则共享数据空间个程则共享数据空间,每个线程有自己的执行堆栈和每个线程有自己的执行堆栈和程序计数器为其执行上下文程序计数器为其执行上下文.命名空间:命名空间:Threading类:类:Thread线程简

4、介线程简介在以下情况中可能要使用到多线程: l程序需要同时执行两个或多个任务l程序要等待某事件的发生,例如用户输入、文件操作、网络操作、搜索等l后台程序l优先任务线程线程1)、引入线程名空间、引入线程名空间 using System.Threading;2)、创建代理、创建代理 ThreadStart 代理对象名代理对象名=new ThreadStart(方法名方法名);3)、创建线程、创建线程 Thread 线程对象名线程对象名=new Thread(代理对象名代理对象名);4)、启动线程、启动线程 线程对象名线程对象名.Start();Thread类类类别类别名称名称作用作用(返回值返回值

5、)数据数据类型类型方法方法Thread构构造函数造函数创建线程创建线程Thread方法方法Start启动线程启动线程void方法方法Abort终止线程终止线程void方法方法Suspend挂起(暂停)线程的执行挂起(暂停)线程的执行void方法方法Resume继续执行挂起的线程继续执行挂起的线程void静态方法静态方法Sleep等待线程的完成等待线程的完成void属性属性IsAlive判断线程的执行状态判断线程的执行状态bool属性属性IsBackground判断线程是否是后台线程判断线程是否是后台线程void属性属性Name获取或设置线程的名字获取或设置线程的名字string属性属性Prio

6、rity读取读取/设置线程的优先级设置线程的优先级ThreadPriority线程启动与终止线程启动与终止 线程只有启动后才会起作用。启动后,如果线程只有启动后才会起作用。启动后,如果没有终止,不能再次启动它没有终止,不能再次启动它启动线程:启动线程:线程对象名线程对象名.Start();终止线程:终止线程:线程对象名线程对象名.Abort();线程挂起及恢复线程挂起及恢复 临时挂起线程,常见的应用是暂停声音文件临时挂起线程,常见的应用是暂停声音文件或视频文件的播放)或视频文件的播放) 挂起线程:挂起线程:线程对象名线程对象名.Suspend();恢复线程:恢复线程:线程对象名线程对象名.Re

7、sume();线程的优先级线程的优先级如果在应用程序中有多个线程在运行,但一些线程如果在应用程序中有多个线程在运行,但一些线程比另一些线程重要,该怎么办?比另一些线程重要,该怎么办? 可以在一个进程中为不同的线程指定不同的优先级可以在一个进程中为不同的线程指定不同的优先级 线程的优先级线程的优先级高优先级的线程可以阻止低优先级的线程执行,因高优先级的线程可以阻止低优先级的线程执行,因此在改变线程的优先级时要特别小心。此在改变线程的优先级时要特别小心。线程的优先级可以定义为线程的优先级可以定义为ThreadPriority枚举的值:枚举的值:HighestAboveNormalNormalBel

8、owNormalLowest用法:线程对象名线程对象名.Priority = ThreadPriority.Highest优先级示例优先级示例Domo线程同步线程同步使用线程的一个重要方面是同步访问多个线程访问使用线程的一个重要方面是同步访问多个线程访问的任何变量。的任何变量。所谓所谓同步同步,是指在某一时刻只有一个线程可以访问,是指在某一时刻只有一个线程可以访问变量。变量。如果不能确保对变量的访问是同步的,就会产生错如果不能确保对变量的访问是同步的,就会产生错误。误。 同步关键字同步关键字-lockC#为同步访问变量提供了一个非常简单的方式,即为同步访问变量提供了一个非常简单的方式,即使用使

9、用C#语言的关键字语言的关键字lock,其用法如下所示:,其用法如下所示:lock (x) DoSomething(); 同步注意问题同步注意问题不要滥用同步 死锁 竞态条件 同步示例同步示例3-1在书店可能某种书籍只有一本,而两个售货员同时在书店可能某种书籍只有一本,而两个售货员同时销售这本书,我们可以把两个售货员看作两个线程,销售这本书,我们可以把两个售货员看作两个线程,那该如何处理呢?那该如何处理呢? 同步示例同步示例3-2using System;using System.Threading;public class BookShop public int num = 1;/共享资源共

10、享资源 public void Sale() int tmp; lock (this) /同步控制同步控制 tmp = num; if (tmp 0) /卖书过程卖书过程 Thread.Sleep(1000); num = num - 1; Console.WriteLine(售出一本售出一本); else Console.WriteLine(没有了没有了); 同步示例同步示例3-3public class MyClass public static void Main() BookShop a = new BookShop(); Thread t1 = new Thread(new ThreadStart(a.Sale); Thread t2 = new Thread(new ThreadStart(a.Sale); t1.Start(); t2.Start(); Console.Read(); 总结总结进程和线程的概念进程和线程的概念进程的属性和方法进程的属性和方法线程的执行线程的执行线程的优先级线程的优先级线程的同步线程的同步

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号