- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
讲稿文字规范 - 网络教育精品资源共享课-上海交通大学_11607
应用软件开发(C#) 第9章 多线程 第9章 多线程 王德俊 上海交通大学继续教育学院 第9章 多线程 9.1 线程及其实现方法 9.2 线程的同步控制 9.1.1 线程的概念 9.1.2 线程的实现方法 9.1.3 线程的优先级 9.1 线程及其实现方法 线程的概念与程序、进程的概念密切相关。 程序是程序员编写的静态代码文本。 进程则是程序的一次动态执行过程 同一个程序,可以被多次加载到不同的内存区域中、使用不同的机器资源,从而形成多个不同的进程 现代操作系统一般支持多线程,一个进程又可以由多个执行单元,即多个线程组成。 每个线程都共享着其进程所占用的内存空间和机器资源(如堆栈、CPU、寄存器等) 实际上,一个线程是一组机器指令以及它共享的内存和资源。 9.1 线程及其实现方法 9.1.1 线程的概念 线程和进程的主要区别: 进程是由多个线程组成,即线程是进程的一个组成部分。 线程的划分尺度小,具有较高的并发效率。 进程独占相应的内存和资源,进程间切换需要切换资源;同一进程的多个线程则是共享该进程所拥有的内存和资源,线程间切换开销小。 进程提供多个线程执行控制,而每个线程只能有一个运行入口、顺序执行序列和出口(“线序”执行)。 线程不能独立执行,而必须依赖于进程所提供的环境。 9.1 线程及其实现方法 9.1.1 线程的概念(续) 线程的创建和应用主要是由Thread类和ThreadStart委托来实现。 Thread类的构造函数: (1)构造函数:用于创建线程,主要有两个重载版本: public Thread(ThreadStart start) //该构造函数创建的线程关联没有参数的方法 public Thread(ParameterizedThreadStart start) //该构造函数创建的线程关联带一个object类型参数的方法 (2)每个线程都必须关联一个无返回类型的方法(称为线程方法),如果关联的方法无参数,则用第一个构造函数创建线程;如果关联的方法带一个参数,则用第二个构造函数创建线程。 9.1 线程及其实现方法 9.1.2 线程的实现方法 9.1.2 线程的实现方法(续) (3)构造函数中,参数start是ThreadStart类型或ParameterizedThreadStart类型的变量。 (4)这两种委托类型的声明如下: public delegate void ThreadStart() public delegate void ParameterizedThreadStart(Object obj) (5)线程关联的方法必须与所使用的委托类型相一致,返回类型必须为void,且在创建委托对象时关联的方法必须是已经确定了的。这些方法通常是类的静态方法和对象的方法。 实现方法举例: 下面代码先定义类A,它有两个静态方法f()和g(), g()带有object类型的参数obj: class A { public static void f() { Console.WriteLine(这是关联方法f()的线程); } public static void g(object obj) { Console.WriteLine(这是关联方法g()的线程:+obj.ToString()); } } 9.1 线程及其实现方法 9.1.2 线程的实现方法 通过委托类型ThreadStart和ParameterizedThreadStart关联方法f()和g() ThreadStart thst = new ThreadStart(A.f); ParameterizedThreadStart pthst = new ParameterizedThreadStart(A.g); 创建线程th1和th2,并执行它们: Thread th1 = new Thread(thst); //关联方法f() Thread th2 = new Thread(pthst); //关联方法g(),带一个参数 th1.Start(); //启动线程th1(执行方法f()) th2.Start(200); //启动线程th2(执行方法g(),并将200作为参数值传给该方法) 9.1 线程及其实现方法 9.1.2 线程的实现方法 输出结果: 这是关联方法f()的线程 这是关联方法g()的线程:200 9.1 线程及其实现方法 9.1.2 线程的实现方法 Start()方法 该方法用于启动已经创建的线程,线程将进入Running状态(线程刚创建完时是处于Unstarted状态)。 如启动线程th1的语句是:th1.Start(); Abort()方
您可能关注的文档
- 秋黑龙江省讷河市第二中学高一英语同步训练:module 3 period4(module3 body language and non-verbal communication)外研版必修4.doc
- 秋长春版语文六上《夜莺的歌声》课件4.ppt
- 秋高中英语(目标分析 方案设计 自主导学)TheMillionPoundBank-Note单元归纳提升课件新人教版必修3.ppt
- 秋黑龙江省讷河市第二中学高一英语同步训练:module 5 period5 cultural corner;module file(module5 a trip along the three gorges)外研版必修4.doc
- 秋黑龙江省讷河市第二中学高一英语同步训练:module 4 period4 listening;pronunciation;speaking(module4 great scientists)外研版必修4.doc
- 突发公共卫生事 件应急处理预案84448.ppt
- 突发环境事 件应急预案范例.doc
- 秋八年级历史与社会上册 第四单元 第二课 第三框 民族和睦与对外交流课件 (人教版).ppt
- 突发公共卫生应急事 件处置、相关法律解读.ppt
- 第2讲 版质量管理体系内部审核员培课程.ppt
- 执业药师之《药事管理与法规》检测卷讲解含答案详解(最新).docx
- 执业药师之《药事管理与法规》全真模拟模拟题及答案详解(全国通用).docx
- 2025年执业药师之《西药学综合知识与技能》模拟试题附参考答案详解(突破训练).docx
- 2025年执业药师之《西药学综合知识与技能》考前冲刺模拟题库含答案详解(培优a卷).docx
- 2025年执业药师之《西药学综合知识与技能》真题精选附答案详解(名师推荐).docx
- 执业药师之《药事管理与法规》强化训练模考卷带答案详解.docx
- 2025年执业药师之《西药学综合知识与技能》考前冲刺测试卷包附参考答案详解(b卷).docx
- 2025年执业药师之《西药学综合知识与技能》模考模拟试题及参考答案详解(夺分金卷).docx
- 2025年执业药师之《西药学综合知识与技能》真题含答案详解【b卷】.docx
- 2025年执业药师之《西药学综合知识与技能》考前冲刺模拟题库带答案详解(b卷).docx
文档评论(0)