进程和线程详解_第1页
进程和线程详解_第2页
进程和线程详解_第3页
进程和线程详解_第4页
进程和线程详解_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

(优选)进程和线程详解当前1页,总共22页。目标进程和线程的概念进程的属性和方法线程的执行线程的优先级线程的同步当前2页,总共22页。进程当前3页,总共22页。进程概念:是应用程序的一次动态执行命名空间:Diagnostics类:Process当前4页,总共22页。Diagnostics命名空间Process类类别名称作用(返回值)数据类型属性ProcessName获取进程名称string属性ID获取进程唯一标示符int属性Threads进程中的线程集合Thread[]属性MachineName获取运行进程的计算机名称string方法GetCurrentProcess获取当前的进程Process静态方法GetProcesses获取计算机中运行的进程Process[]静态方法Start启动进程Process方法Kill关闭进程void当前5页,总共22页。同时执行所有任务,时间更少,效率更高人体线程简介3-1读,写一览无遗血液循环在同一时间点执行各项进程编译程序发送/接收邮件

打印文件其他操作系统允许计算机同时执行多项操作程序(进程)当前6页,总共22页。线程简介3-2程序1程序2线程1线程2线程3线程1线程2线程3单独的执行路径多线程当前7页,总共22页。线程简介定义:是进程中的一个实体,是被系统独立调度和分派的基本单位,表示计算机执行的指令序列与进程的区别:子进程和父进程有不同的代码和数据空间,而多个程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文.命名空间:Threading类:Thread当前8页,总共22页。线程简介在以下情况中可能要使用到多线程:程序需要同时执行两个或多个任务程序要等待某事件的发生,例如用户输入、文件操作、网络操作、搜索等后台程序优先任务当前9页,总共22页。线程1)、引入线程名空间

usingSystem.Threading;2)、创建代理ThreadStart代理对象名=newThreadStart(方法名);3)、创建线程Thread线程对象名=newThread(代理对象名);4)、启动线程线程对象名.Start();当前10页,总共22页。Thread类类别名称作用(返回值)数据类型方法Thread构造函数创建线程Thread方法Start启动线程void方法Abort终止线程void方法Suspend挂起(暂停)线程的执行void方法Resume继续执行挂起的线程void静态方法Sleep等待线程的完成void属性IsAlive判断线程的执行状态bool属性IsBackground判断线程是否是后台线程void属性Name获取或设置线程的名字string属性Priority读取/设置线程的优先级ThreadPriority当前11页,总共22页。线程启动与终止线程只有启动后才会起作用。启动后,如果没有终止,不能再次启动它启动线程:

线程对象名.Start();终止线程:

线程对象名.Abort();当前12页,总共22页。线程挂起及恢复临时挂起线程,常见的应用是暂停声音文件或视频文件的播放)挂起线程:

线程对象名.Suspend();恢复线程:

线程对象名.Resume();当前13页,总共22页。线程的优先级如果在应用程序中有多个线程在运行,但一些线程比另一些线程重要,该怎么办?可以在一个进程中为不同的线程指定不同的优先级当前14页,总共22页。线程的优先级高优先级的线程可以阻止低优先级的线程执行,因此在改变线程的优先级时要特别小心。线程的优先级可以定义为ThreadPriority枚举的值:HighestAboveNormalNormalBelowNormalLowest用法:线程对象名.Priority=ThreadPriority.Highest当前15页,总共22页。优先级示例Domo当前16页,总共22页。线程同步使用线程的一个重要方面是同步访问多个线程访问的任何变量。所谓同步,是指在某一时刻只有一个线程可以访问变量。如果不能确保对变量的访问是同步的,就会产生错误。当前17页,总共22页。同步关键字-lockC#为同步访问变量提供了一个非常简单的方式,即使用C#语言的关键字lock,其用法如下所示:lock(x){DoSomething();}当前18页,总共22页。同步注意问题不要滥用同步

死锁

竞态条件

当前19页,总共22页。同步示例3-1在书店可能某种书籍只有一本,而两个售货员同时销售这本书,我们可以把两个售货员看作两个线程,那该如何处理呢?当前20页,总共22页。同步示例3-2usingSystem;usingSystem.Threading;publicclassBookShop{publicintnum=1;//共享资源

publicvoidSale(){inttmp;

lock(this)//同步控制

{tmp=num;if(tmp>0){//卖书过程

Thread.Sleep(1000);num=num-1;Console.WriteLine("售出一本");}elseConsole.WriteLine("没有了");}}}当前21页,总共22页。同步示例3-3publicclassMyClass{publicstaticvoidMain(){BookShopa=newBookShop();Threadt1=newThread(newThreadStart(a.Sale));

温馨提示

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

评论

0/150

提交评论