- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第10章 多线程 10.1 多线程概述 10.1 多线程概述 10.2 多线程的创建 10.3 线程的调度与线程控制 10.4 线程的同步 小结 本章要点 ?? 多线程的基本概念 ? 多线程的创建 ? 线程调度与线程控制 ? 线程同步 本章难点 ?? 线程调度与线程控制 ? 线程同步的实现 1 多线程的概念 在一个进程内部也可以同时运行多个任务,将一个进程内部运行的每个任务都称为一个线程(thread)。线程是进程内部的单一的一个顺序控制流,即程序的一条执行路径,一个进程内可以拥有多个并发执行的线程,我们称之为多线程(Multi-Thread)。 2 Java中的多线程 在Java语言中,线程通过java.lang.Thread类进行定义和实现,在该类中封装了虚拟的CPU来进行线程操作控制。程序中的线程都是Thread类的实例。 多线程的 执行 …. 在某个时间点上运行的线程只有1个 ………… 3 线程的状态和生命周期 (1) 新建状态 创建了一个线程类的对象后,产生的新线程进入新建状态。 (2) 就绪状态 当一个新创建的线程调用start()方法后便进入可执行状态。 (3) 执行状态 当处于就绪状态的线程被调度并获得了CPU等执行必需的资源时,便 进入到该状态,即运行了run()方法。 (4) 阻塞状态 如果一个线程进入阻塞状态,那么这个线程暂时无法进入就绪队列。处于阻塞状态的线程通常需要某些事件才能唤醒。 (5) 终止状态 终止状态是线程执行结束的状态,没有任何方法可改变它的状态。 新建状态 阻塞状态 就绪状态 运行状态 终止状态 新建状态 阻塞状态 1 Thread类的构造方法 Java中的线程体是由线程类的run()方法定义,在该方法中定义线程的具体行为。 2 通过继承Thread类创建线程 (1) 定义一个线程类,它继承线程类Thread并重写其中的run()方法。 (2) 创建该子类的对象创建线程。 3 通过实现Runnable接口实现线程 public interface Runnable{ void run(); } (1) 定义一个类实现Runnable接口,即在该类中提供run()方法的实现; (2) 把Runnable的一个实例作为参数传递给Thread类的一个构造方法,该实例对象提供线程体run()。 例10-1 例10-2 1 线程优先级与线程调度策略 优先级越高,越先执行;优先级越低,越晚执行;优先级相同时,则遵循队列的“先进先出”原则。 2 线程的基本控制 (1)sleep() 把CPU时间让给优先级比其低的线程。 (2)yield() 可以使具有与当前线程相同优先级的线程有运行的机会。 (3)join() 使当前线程等待调用该方法的线程执行完毕之后再继续。 (4)currentThread() 具体是返回当前线程的引用。 (5)isAlive() 用isAlive()测试线程以确定线程是否活着。 (6)stop() 强行终止线程 (7)suspend()与resume() 在一个线程中调用t.suspend(),将使另一个线程t暂停执行。要想恢复线程,必须由其他线程调用t.resume()。 1 线程的同步 Java中对共享数据操作的并发控制是采用传统的封锁技术。用关键字synchronized为共享资源加锁来解决。 2 线程间的通信 当某线程需要在synchronized块中等待共享数据状态改变时,可以调用wait()方法。 当其操作完后,只要调用notify()方法就可以通知正在等待的线程重新占有锁并运行。 例10-3 线程是指程序内部的控制流,多线程就是在一个程序内部同时进行多个操作,每个操作占用一个线程,从而共享系统开销,提高通程序执行速度。在Java语言中,线程通过java.lang.Thread类进行定义和实现。 一个线程从创建、启动到终止的整个过程称为线程的生命周期,包括五种状态:新建状态、就绪状态、执行状态、阻塞状态、终止状态。 Thread类是多线程程序设计的基础。 Java虚拟机允许一个应用程序可以拥有多个同时执行的线程,优先级越高,越先执行。 Java通过Java.lang.object类的方法wait()和notify()实现线程通信。
您可能关注的文档
- Internet技术与应用教程 曲桂东 毕燕丽 主编 第7章网络娱乐与互动新.ppt
- Internet技术与应用教程 曲桂东 毕燕丽 主编 第8章网上学习与生活新.ppt
- Internet技术与应用教程 曲桂东 毕燕丽 主编 第9章 网上电子商务系统新.ppt
- Internet技术与应用教程 曲桂东 毕燕丽 主编 第11章 网络安全与病毒防范新.ppt
- Internet技术与应用教程(第三版) 曲桂东 毕燕丽 第3章网页的浏览与管理新.ppt
- Internet技术与应用教程(第三版) 曲桂东 毕燕丽 第4章搜索引擎的使用新.ppt
- Internet技术与应用教程(第三版) 曲桂东 毕燕丽 第5章电子邮件新.ppt
- Internet技术与应用教程(第三版) 曲桂东 毕燕丽 第6章文件传输新.ppt
- Internet技术与应用教程(第三版) 曲桂东 毕燕丽 第7章网络娱乐与互动新.ppt
- Internet技术与应用教程(第三版) 曲桂东 毕燕丽 第8章网上学习与生活新.ppt
最近下载
- 人教版(2024)七年级下册数学第七章 相交线与平行线 大单元教学设计 .pdf VIP
- 研究生英语综合教程(上)熊海虹 课文翻译及课后习题答案.pdf VIP
- 监理大纲光伏电站工程.pdf VIP
- GB_T 31497-2024 信息技术 安全技术 信息安全管理 监视、测量、分析和评价.pdf VIP
- 无人机法律法规与安全飞行 第2版 第二章 空气空间法律制度.pptx VIP
- 艺术概论全套配套课件孙丽华11 第二主题 话题7 文学漫步.ppt VIP
- 艺术概论全套配套课件孙丽华10 第二主题 话题6 舞之神韵.ppt VIP
- 水泥混凝土路面施工及验收规范.pdf VIP
- 艺术概论全套配套课件孙丽华9 第二主题 话题5 音乐之声.ppt VIP
- 《岳阳楼记》文言知识点梳理.doc VIP
文档评论(0)