网站大量收购闲置独家精品文档,联系QQ:2885784924

《Java程序设计》课件_javaCP12线程.pptxVIP

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第十二章线程Java程序设计

本章主要内容概述线程的创建方法线程的基本操作线程组小结2024/12/24李飞——计算中心2/30

概述程序:指由计算机语言的语句组成的用于解决一个实际问题的语句集合。程序是一段静态的代码,它可以看成驱动计算机硬件完成某一功能的执行脚本。进程:程序的一次运行称为一个进程(Process),它是计算机系统进行软硬件资源分配和调度的一个独立单位。进程可以并发,在多个进程并发运行时,会出现运行、阻塞和就绪三种状态,并依据一定的条件而相互转换。线程:也被称为轻量级进程(LightweightProcess,LWP)。线程是程序执行流的最小单元;是程序中的一个单一的顺序控制流程;是进程内一个相对独立的、可调度的执行单元;是系统独立调度和分派CPU的基本单位;是运行中的程序的最小调度单位。2024/12/24李飞——东北大学秦皇岛分校计算中心3/35

进程、线程之间的关系2024/12/24李飞——东北大学秦皇岛分校计算中心4/35

线程的状态

新建状态:刚刚创建的线程就处于新建状态。2.就绪状态。就绪状态:也称可运行状态,处于新建状态的线程被启动后,是指线程具备运行的所有条件,逻辑上可以运行,在等待处理机的运行,一旦轮到它使用处理机资源,它就可以开始运行了。运行状态:运行状态是指线程占有处理机正在运行时的状态。阻塞状态:阻塞状态是指正在运行状态的线程在某些特殊情况下,需要让出处理机资源,并暂时终止自己的运行。这时线程处于不可运行的状态,这就好比旅客已经登上火车,在火车运行过程中忽然临时停车,以避让其他火车时的状态。消亡状态:处于消亡状态的线程不具备继续运行的能力。2024/12/24李飞——东北大学秦皇岛分校计算中心5/35

线程状态之间的转换线程在以下几种情况中会进入阻塞状态。1)调用sleep()方法或yield()方法。2)为等候一个条件,线程调用wait()方法。3)该线程与另一个线程join在一起。导致线程进入消亡状态的原因有两个。1)正常运行的线程完成了它的全部工作。2)当进程因故停止运行时,该进程中的所有线程将被强行终止。2024/12/24李飞——东北大学秦皇岛分校计算中心6/35

2线程的创建方法

1通过继承Thread类创建线程从Thread类派生一个子类,在类中一定要重写run()方法。用这个子类创建一个对象。调用这个对象的start()方法,用于启动线程。2用Runnable接口创建线程在定义自己的类时说明该类继承Runnable接口。在类定义中实现run()方法。在调用线程的类中建立自定义的类的实例对象R。在调用线程的类中用Thread类的构造方法Thread(R)通过对象R来创建线程对象。调用线程对象的start()方法,启动线程。2024/12/24李飞——东北大学秦皇岛分校计算中心7/35

通过Thread类创建线程的代码框架classMyThreadextendsThread{ 成员变量; 成员方法; publicvoidrun(){ //线程需要完成的功能对应的代码 }}publicclassTestThread{ publicstaticvoidmain(String[]args){ MyThreadthread1=newMyThread(); //使用start方法启动线程 thread1.start(); }}?2024/12/24李飞——东北大学秦皇岛分校计算中心8/35

通过Runnable接口创建线程的代码框架classMyThreadimplementsRunnable{ 成员变量; 成员方法; publicvoidrun(){ //线程需要完成的功能对应的代码 }}publicclassTestThread{ publicstaticvoidmain(String[]args){ MyThreadt=newMyThread();//创建实现Runnable接口的类的对象//通过实现Runnable接口的类的对象创建线程类对象Threadthread1=newThread(t1); //使用start方法启动线程 thread1.start(); }}?2024/12/24李飞——东北大学秦皇岛分校计算中心9/35

3线程的基本操作线程类中的常用方法2024/12/24李飞——东北大学秦皇岛分校计算中心10/35方法名功能start()启动线程对象。run()定义线程体,即定义线程启动后所执行的操作。wait()使线程处于等待状态。isAlive()测试线程是否在活动。setPriority(intpriority)设

文档评论(0)

酱酱 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档