- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
多线程操作概要
* * * * * * * 大多数计算机上,增加变量操作不是一个原子操作,需要执行下列步骤 将实例变量中的值加载到寄存器中。 增加或减少该值。 在实例变量中存储该值。 * * 本课目录 线程与进程 线程的创建和启动 线程的生命周期 对线程进行操作 线程的同步 本课目录 线程与进程 线程的创建和启动 线程的生命周期 对线程进行操作 线程的同步 线程与进程 进程与多任务 进程就是一个在内存中独立运行的程序,有自己的地址空间(如:一个记事本程序) 能同时运行多个进程(程序)的操作系统,称为多任务的操作系统(如:Windows、Linux) 线程与进程 线程 线程:是进程内部单一的一个顺序控制流 线程和进程 每个进程都有独立的代码和数据空间(进程上下文)进程切换的开销大。 线程: 轻量的进程,同一类的线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换的开销小。 多线程: 在同一个进程中有多个顺序流同时执行 线程与进程 线程和进程的比较 共同点 目的都是为了并发 都存在“排斥与同步”的问题 不同点 线程共享内存,而进程是内存隔离的 线程更节省资源 线程又叫“轻进程” 本课目录 线程与进程 线程的创建和启动 线程的生命周期 对线程进行操作 线程的同步 线程的创建和启动 C#中创建线程 创建一个ThreadStart委托对象(将要执行的方法托付给该委托对象) 创建类Thread的一个实例,将ThreadStart委托对象通过构造方法传给该Thread对象 启动Thread对象,通过调用Start()方法。 线程的创建和启动 线程的运行 Main()方法 调用的方法 Main()方法 启动新线程 线程的创建和启动 线程的优先级 当线程之间争夺CPU时间时,CPU是按照线程的优先级给予服务的 在C#应用程序中,用户可以设定5个不同的优先级 由高到低分别是Highest,AboveNormal,Normal,BelowNormal,Lowest 在创建线程时如果不指定优先级,那么系统默认为ThreadPriority.Normal myThread.Priority=ThreadPriority.Lowest; 线程的创建和启动 后台线程 所有线程都是依附于Main()函数所在的线程的,Main()函数是C#程序的入口,起始线程可以称之为主线程。 Thread.ThreadState 属性 这个属性代表了线程运行时状态,在不同的情况下有不同的值 Background状态,它指示线程是在后台运行还是在前台运行(默认为False) 如果所有的前台线程都停止了,那么主线程可以终止,而所有的后台线程都将无条件终止。 线程的创建和启动 Thread.CurrentThread属性 获取当前正在运行的线程 Thread类的静态属性 本课目录 线程与进程 线程的创建和启动 线程的生命周期 对线程进行操作 线程的同步 线程的生命周期 线程的状态 线程的生命周期 线程的生命周期 就绪 ready 运行 runing 阻塞 blocking start() 死亡 dead Sleep() Join() 本课目录 线程与进程 线程的创建和启动 线程的生命周期 对线程进行操作 线程的同步 对线程进行操作 通过睡眠堵塞线程(Sleep) 想把线程挂起一段时间,使用Thread类的静态方法Sleep()。该方法有重载,我们使用传递一个整数类型参数的方法,该整数值表示毫秒数 对线程进行操作 拼接线程(Join) 当暂停一个线程,让其等到另一线程完成之后再继续,可将第一个线程拼接到第二个线程。相当于把第一个的头部连接到第二个的尾部,把它们接起来。 把线程一(t1)拼接到线程二(t2),用以下形式 t2.Join(); 如果上面的语句在t1的一个函数中运行,t1会挂起,直到t2完成并退出 对线程进行操作 终止线程 正常情况:线程的调用方法执行完毕后线程终止。 也可以让线程终止自己 最干净的方法是设置布尔标记(如: KeepAlive),线程间隔地监测这个值,当这个标记改变状态(从真到假,或者从假到真),线程停止自己 调用线程的Interrupt()方法 调用线程的Abort()方法 本课目录 线程与进程 线程的创建和启动 线程的生命周期 对线程进行操作 线程的同步 线程的同步 同步(Synchronization) 多个线程访问同一资源会产生线程安全问题。 在同一时间只有一个线程能够修改或使用一个公共资源,需要使用同步的机制,对公共资源进行加锁。 C#提供了三种同步机制: 互锁类(Interlocked类) C# lock语句,某个线程拿到一个对象的锁,其他对象就不可执行被锁区域的代码,只有在锁被释放后 监控对象(Monitor类),对资源最
您可能关注的文档
- 三语教案上.doc
- 外观设计侵权判定概要.ppt
- 外科学-(心肺复苏)概要.ppt
- 三角恒等变换().ppt
- 三语演示文稿1.ppt
- 三鑫维护人员使用手册.docx
- 外观设计专利概述及申请流程概要.ppt
- 三鑫网格员使用手册.docx
- 外貌描写761概要.ppt
- 外贸函电InquiryandReply询价及回复概要.ppt
- 2024年学校党总支巡察整改专题民主生活会个人对照检查材料3.docx
- 2025年民主生活会个人对照检查发言材料(四个带头).docx
- 县委常委班子2025年专题生活会带头严守政治纪律和政治规矩,维护党的团结统一等“四个带头方面”对照检查材料四个带头:.docx
- 巡察整改专题民主生活会个人对照检查材料5.docx
- 2024年度围绕带头增强党性、严守纪律、砥砺作风方面等“四个方面”自我对照(问题、措施)7.docx
- 2025年度民主生活会领导班子对照检查材料(“四个带头”).docx
- 国企党委书记2025年度民主生活会个人对照检查材料(五个带头).docx
- 带头严守政治纪律和政治规矩,维护党的团结统一等(四个方面)存在的问题整改发言提纲.docx
- 党委书记党组书记2025年带头增强党性、严守纪律、砥砺作风方面等“四个带头”个人对照检查发言材料.docx
- 2025年巡视巡察专题民主生活会对照检查材料.docx
最近下载
- 创意唯美厦门大学介绍PPT模板.pptx
- 湖南省常德市2023-2024学年高三上学期期末检测生物试题(含答案解析).docx VIP
- 人教版2023--2024学年度第一学期七年级地理上册期末测试卷及答案.doc VIP
- 2010年天津外国语大学英语专业(语言学)真题试卷.doc VIP
- 湘教版美术七上第三课《向日葵》课件ppt.ppt
- 人教版(2024)地理七年级上册第一学期期末测试卷(含答案).doc VIP
- 大学体育与健康 教案全套 体适能 第1--16周.docx
- 广东省广州市增城区2021-2022学年九年级上学期期末质量检测英语试题.pdf VIP
- Redis操作基础文档 .pdf VIP
- 传热学第5版课件完整版.ppt
文档评论(0)