C#进程和线程详解.ppt

上传人:牧羊曲112 文档编号:5416958 上传时间:2023-07-05 格式:PPT 页数:23 大小:447KB
返回 下载 相关 举报
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类: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)、创建线程 Thread 线程对

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

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

5、ng();,同步注意问题,不要滥用同步 死锁 竞态条件,同步示例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 ThreadStart(a.Sale);t1.Start();t2.Start();Console.Read();,总结,进程和线程的概念进程的属性和方法线程的执行线程的优先级线程的同步,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号