- 1、本文档共48页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java语言PPT教学课件-第八章 线程
第八章 线程 ?本章导读 1. Java中的线程 2. 线程的生命周期 3. 线程的优先级与调度管理 4. Thread的子类创建线程 5.使用Runable接口 6.线程的常用方法 7.线程同步 8.在同步方法中使用wait()、notify 和notifyAll 9.线程的联合 10.守护线程 Java线程 每个Java程序都有一个默认的主线程。 Java应用程序总是从主类的main方法开始执行。当JVM加载代码,发现main方法之后,就会启动一个线程,这个线程称做“主线程”,该线程负责执行main方法。那么,在main方法的执行中再创建的线程,就称为程序中的其他线程。 如果main方法中没有创建其他的线程,那么当main方法执行完最后一个语句,即main方法返回时,JVM就会结束Java应用程序。 如果main方法中又创建了其他线程,那么JVM就要在主线程和其他线程之间轮流切换,保证每个线程都有机会使用CPU资源。 main方法即使执行完最后的语句(主线程结束),JVM也不会结束程序,JVM一直要等到程序中的所有线程都结束之后,才结束Java应用程序。 Java线程 多线程和传统的单线程在程序设计上最大的区别在于,由于各个线程的控制流彼此独立,使得各个线程之间的代码是乱序执行的,由此带来线程调度、同步等问题需要解决。 8.7 线程同步 Java使我们可以创建多个线程,在处理多线程问题时,我们必须注意这样一个问题:当两个或多个线程同时访问同一个变量,并且一个线程需要修改这个变量。我们应对这样的问题作出处理,否则可能发生混乱。比如,当一个线程正在修改文件的内容时,如果另一个线程也要修改同样的文件,就会出现混乱的局面。 在处理线程同步时,要做的第一件事就是要把修改数据的方法用关键字:synchronized来修饰。一个方法使用关键字synchronized修饰后,如果一个线程A占有CPU资源期间,使得该方法被调用执行,那么在该同步方法返回之前,即同步方法调用执行完毕之前,其他占有CPU资源的线程一旦调用这个同步方法就会引起堵塞,堵塞的线程要一直等到堵塞的原因消除(同步方法返回),再排队等待CPU资源,以便使用这个同步方法。 8.8 在同步方法中使用wait()、notify和notifyall wait()、notify()和notifyAll()都是Object类中的final方法,被所有的类继承,且不允许重写的方法。 当一个线程使用的同步方法中用到某个变量,而此变量又需要其它线程修改后才能符合本线程的需要,那么可以在同步方法中使用wait()方法。使用wait()方法可以中断方法的执行,使本线程等待,暂时让出CPU的使用权,并允许其它线程使用这个同步方法。其它线程如果在使用这个同步方法时不需要等待,那么它使用完这个同步方法的同时,应当用notifyAll()方法通知所有的由于使用这个同步方法而处于等待的线程结束等待。 在下面的例子中,为了避免复杂数学算法,我们模拟3个人排队买票,每人买1张票。售票员只有1张五元的钱,电影票五元钱一张。张某拿1张二十元的人民币排在孙某前面买票,孙某拿1张十元的人民币排在赵的前面买票,赵某拿1张五元的人民币排在最后。 8.9 线程联合 一个线程A在占有CPU资源期间,可以让其它线程调用join()和本线程联合, 如: B.join(); 我们称A在运行期间联合了B。如果线程A在占有CPU资源期间一旦联合B线程,那么A线程将立刻中断执行,一直等到它联合的线程B执行完毕,A线程再重新排队等待CPU资源,以便恢复执行。如果A准备联合的B线程已经结束,那么B.join()不会产生任何效果。 在下面的例子11中,一个线程在运行期间联合了另外一个线程。 8.10 守护线程 一个线程调用 void setDaemon(boolean on) 方法可以将自己设置成一个守护(Daemon)线程,例如: thread.setDaemon(true); 线程默认是非守护线程,非守护线程也称作用户(user)线程。 当程序中的所有用户线程都已结束运行时,即使守护线程的run方法中还有需要执行的语句,守护线程也立刻结束运行。一般地,用守护线程做一些不是很严格的工作,线程的随时结束不会产生什么不良的后果。一个线程必须在运行之前设置自己是否是守护线程。 下面的例子12中有一个守护线程 public class Xyz implements Runnable { private boolea
您可能关注的文档
- Access数据库基础及应用教程-第5章 数据表.ppt
- VoIP网络技术-VoIP安全风险与解决方案.ppt
- 《图书馆资源与服务》系列专题讲座-第二十二讲 信息技术基础能力系列4--Excel在学习中的应用.ppt
- 基于FPGA的简单RISC_CUP设计.doc
- 《技术经济学概论》PPT教学课件-第五章不确定性与风险分析.ppt
- GPS原理及应用-GPS系统.ppt
- 毕业设计(论文)-PVC在装饰材料中的应用研究及发展趋势.doc
- 《技术经济学概论》PPT教学课件-第八章 投资项目可行性研究.ppt
- 毕业设计(论文)-TYJL-Ⅱ型计算机联锁系统采集电路图设计.doc
- 毕业设计(论文)-SP板切割机电气控制系统.doc
- 4.1 陆地水体及其关系 课件高二上学期地理中图版(2019)选择性必修一.pptx
- 混凝土结构与砌体结构设计习题集 .pdf
- 统编版语文四年级下册 22.古诗三首 课件(共50张PPT).pptx
- 青海2024行测笔试真题及答案 .pdf
- 2.1 充分发挥市场在资源配置中的决定性作用 课件-高中政治统编版必修二经济与社会.pptx
- 27.巨人的花园 课件(共58张PPT).pptx
- 统编版语文一年级下册5 树和喜鹊 第1课时 课件(共37张PPT).pptx
- 2.1 充分发挥市场在资源配置中的决定性作用 课件政治一轮复习统编版必修二经济与社会.pptx
- 贵港市平南县2024届小升初考试语文试卷含答案 .pdf
- 小学期末考试质量分析 .pdf
最近下载
- 2025年高考地理二轮复习非选择题强化训练(课件).pptx VIP
- (二模)2025年广州市普通高中毕业班综合测试(二)数学试卷(含答案详解).pdf
- 14J938 抗爆、泄爆图集标准.docx VIP
- 降低CRRT治疗非计划下机率.pptx VIP
- 《中国心力衰竭诊断和治疗指南2024》解读(下).pptx
- 《预检分诊》课件.pptx VIP
- 2024年河南省政务服务办事员职业技能竞赛考试题库-下(判断、简答题汇总).docx
- 2025年部编版语文六年级毕业复习知识点.pdf VIP
- 2025年政务服务办事员技能大赛理论考试题库600题(含答案).docx
- 14J938抗爆泄爆图集标准.docx VIP
文档评论(0)