进程和多线程.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
进程和多线程

多线程 进程简介 进程是程序在计算机上的一次执行活动,是程序一次动态执行过程,它是系统进行资源分配和调度的一个可并发执行的独立单位,或者说进程应用程序的运行实例,是操作系统进行资源分配的单位。当运行一个程序,就启动一个进程。 Process类 为了了解正在运行的进程的有关信息,.NET提供了Process类。使用Process可以访问本地或远程计算机上的进程,并且可以启动和终止本地系统中的进程。 使用这个类需要导入System.Diagnostics 常用方法和属性 线程概述 线程概述 .NET对线程的支持 .NET中线程的结构 线程概述 线程 操作系统分配处理器时间的基本单元 使多个操作看起来象同时发生的 使用多线程的优点 应用程序在进行用户界面响应时还可做后台操作 按优先级执行任务 通过网络连接到Web服务器或数据库 使用线程的潜在的缺点 因为增加了操作系统的负荷所以可能降低性能 控制多线程的代码比较难,可能导致很多BUG .NET对线程的支持 线程的命名空间 System.Threading 可以进行异步程序设计 .NET中线程的结构 在.NET中使用线程 启动线程 线程属性和参数 管理线程 线程本地存储 中断或结束线程 启动线程 创建线程对象的实例 构造方法用 ThreadStart 代理作为参数 ThreadStart 指向的方法将在线程中执行 线程是通过Start方法来启动 线程属性和参数 Thread.Name 获取或设置线程名 Thread.Priority 获取或设置线程优先级 Thread.IsBackground设置线程是否后台运行 后台运行不会保持前台是活动的 线程的参数封装在对象内 管理线程 Thread.Sleep 阻塞当前线程 Suspend和Resume并不常用 可能导致死锁等应用程序的严重问题 Thread.Join 等待其它线程停止 Thread.WaitHandle 等待一个或多个事件 Thread.ThreadState 属性——线程状态 中断和结束线程 Thread.Interrupt 方法 中断处于执行状态的线程 Thread.Abort 方法 结束线程运行 线程安全概述 一般是在线程间共享数据和资源的问题: 资源竞争–执行顺序失控导致 死锁 – 线程互相等待导致都不能执行 最好的方法是在可能情况下尽量不共享资源 封装数据到实例,而不是通过请求共享数据 .NET框架提供了三种策略来同步静态方法和实例的域: 上下文同步 代码区域同步 手工同步 多线程 线程是指程序中的一个单一的顺序控制流,线程是进程中的实体。一个进程可以拥有多个线程,一个线程必须有一个父线程。线程不拥有系统资源,只有运行必须的一些数据结构。它与父线程的其他线程共享该进程所拥有的全部资源。线程可以创建撤销,从而实现程序的并发执行。 线程和进程的关系 联系:线程在进程中,一个进程可以包含多个线程。 区别:线程的划分比进程小,进程能够独立运行,有自己独立的数据空间和代码,而线程不能独立运行,一个进程的所有线程共享该进程的全部资源。进程是相对静止的,它代表代码和数据的地址空间,而线程是动态的,每个线程代表进程内的一个执行流。 死锁 死锁是指使用共享资源的两个或多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能进行,而导致两个或者多个线程都在等待对方释放资源,都停止执行的情形。 作业 将一个大文件,用用指定的线程数量转移到另外一个目录下去. 将5个文件,用5个线程转移到另外一个目录下去. * * 进程使用的物理内存的大小 WorkingSet 进程的名称 ProcessName 进程的优先级 PriorityClass 进程对应的主模块文件的属性 MainModule 进程所在的机器的名称 MachineName 进程的标识,可以唯一地标识一个进程 ID 属性 强制进程退出,只能用于本地系统 Kill() 等待进程结束 WaitForExit() 启动一个进程 Start() 非静态方法 启动一个进程 Start() 根据进程名称返回一个进程数组 GetProcessByName() 根据进程ID返回特定进程 GetProcessById() 返回当前进程 GetCurrentProcess() 获取本地或远程系统中正在运行的所有进程,该方法返回一个Process数组 GetProcesses() 描述 静态方法 运行应用程序的主机 应用程序 A 应用程序B 共享数据 共享数据 线程 1 线程 2 线程 3 线程的 私有数据 线程的 私有数据 线程的 私有数据 Thread t = new Thread(new ThreadStart(MyClass.AStaticMethod))

文档评论(0)

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

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档