Java程序设计(慕课版 第2版)第13章 多线程.pptVIP

Java程序设计(慕课版 第2版)第13章 多线程.ppt

  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文档。上传文档
查看更多

课件制作人:明日科技13.5.3线程状态检查一般情况下无法确定一个线程的运行状态,对于这些处于未知状态的线程,可以通过isAlive()方法来确定一个线程是否仍处在活动状态。当然即使处于活动状态的线程也并不意味着这个线程一定正在运行,对于一个已开始运行但还没有完成任务的线程,这个方法返回值为true。isAlive()方法用于测试线程是否处于活动状态。如果线程已经启动且尚未终止,则为活动状态。语法格式为:thread:这是一个线程对象,isAlive()方法将判断该线程的活动状态。thread.isAlive()课件制作人:明日科技13.5.4结束线程结束线程有两种情况:(1)自然消亡:一个线程从run()方法的结尾处返回,自然消亡且不能再被运行;(2)强制死亡:调用Thread类中stop()方法强制停止,不过该方法已经被废弃。虽然这两种情况都可以停止一个线程,但最好的方式是自然消亡,简单地说,如果要停止一个线程的执行,最好提供一个方式让线程可以完成run()的流程。例如:线程的run()方法中执行一个无限循环,在这个循环中可以提供一个布尔变量或表达式来控制循环是否执行,在线程执行中,可以调用方法改变布尔变量的值,用这种方式使线程离开run()方法以终止线程。packagecom;publicclassHelloWorldextendsThread{privatebooleanflag=true; //跳出循环标记量publicbooleanisFlag(){ //标记量取值returnthis.flag;}publicvoidsetFlag(booleanflag){//标记量赋值this.flag=flag;}publicvoidrun(){while(isFlag()){//执行相关业务操作if(!isFlag()){ //如果标记量为false,结束循环return;}}}}课件制作人:明日科技13.5.5后台线程后台线程,即Daemon线程,它是一个在后台执行服务的线程。例如操作系统中的隐藏线程和Java语言中的垃圾自动回收线程等。如果所有的非后台线程都结束了,则后台线程也会自动终止。可以使用Thread类中的setDaemon()方法来设置一个线程为后台线程。但是有一点值得注意:必须在线程启动之前调用setDaemon()方法,这样才能将这个线程设置为后台线程。课件制作人:明日科技13.5.5后台线程语法格式为:thread:线程对象。on:该参数如果为true,则将该线程标记为后台线程。当设置完成一个后台线程后,可以使用Thread类中的isDaemon()方法来判断线程是否是后台线程。语法格式为:thread:线程对象。thread.setDaemon(booleanon)thread.isDaemon()课件制作人:明日科技13.6线程的同步如果程序是单线程的,执行起来不必担心此线程会被其他线程打扰,就像在现实中,同一时间只完成一件事情,可以不用担心这件事情会被其他事情打扰,但是如果程序中同时使用多个线程,就好比现实中“两个人同时进入一扇门”,此时就需要控制,否则容易阻塞。《Java实用教程》课件制作人:明日科技Java实用教程第13章多线程课件制作人:明日科技第13章多线程13.1线程概述13.2线程的创建13.3线程的生命周期13.4线程的优先级13.5线程的控制13.6线程的同步13.7线程通信13.8多线程产生死锁课件制作人:明日科技13.2线程的创建在Java语言中,线程也是一种对象,但并非任何对象都可以成为线程,只有实现Runnable接口或继承了Thread类的对象才能成为线程。课件制作人:明日科技Thread类Thread类中的主要的方法包括:start()方法interrupt()方法join()方法run()方法。其中start()方法与run()方法最为常用,start()方法用于启动线程,run()方法为线程的主体方法,可以根据需要重写run()方法。课件制作人:明日科技Thread类Thread类

您可能关注的文档

文档评论(0)

137****6750 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档