java入门第八章.pptVIP

  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文档。上传文档
查看更多
java入门第八章.ppt

一般当最后一个线程结束时,Java程序才退出 守护线程的存在不影响Java程序的退出 setDaemon(true) 使线程成为守护线程(必须在start之前调用) setDaemon(false) 使线程成为一般线程(必须在start之前调用) 守护线程一般不能用于执行关键任务 任务未执行完,线程就可能被强制结束 守护线程一般用来做辅助性工作 提示,帮助等 守护线程 (Daemon) Java使用ThreadGroup来表示线程组,它可以对一批线程进行分类管理,Java允许程序对线程组进行控制。对线程组的控制相当于同时控制这批线程。用户创建的所有线程都属于指定线程组,如果程序没有显式指定线程属于哪个线程组,则该线程属于默认线程组。在默认情况下,子线程和创建它的父线程处于同一个线程组内。 一旦某个线程加入了指定线程组之后,该线程将一直属于该线程组,直到该线程死亡,线程运行过程中不能改变它所属的线程组。 线程组 构造方法 ThreadGroup(String groupName) ThreadGroup(ThreadGroup tg, String groupName) 声明线程的线程组 缺省创建的线程与父线程同组 Thread(ThreadGroup tg, Runnable ro) Thread(ThreadGroup tg, Runnable ro, String threadName) 线程组 int activeCount() 线程组下的所有活动线程数 getMaxProirity / setmaxProirity 获得 / 设置 线程组中线程的最大优先级 getName 获得线程组的名字 iterrupt():中断该线程组内的所有线程。 isDaemon():判断该线程组是否是后台线程组。 setDaemon():把该线程组设置成后台线程组。 ThreadGroup还提供了如下方法: 例:ThreadGroupTest.java 河南大学软件学院 主讲:李丽 多线程 多线程基本概念 创建线程的方式 线程的生命周期及控制 线程的优先级及调度 多线程的互斥与同步 守护线程 (Daemon) 线程组 (ThreadGroup) 每个任务(Task)通常就是一个程序,每个运行中的程序就是一个进程(Process),而一个程序运行时,内部又可以包含多个顺序执行流,每个执行流就是一个线程(Thread),包含多线程的应用程序称为多线程程序。 而且: 多个进程的内部数据和状态都是完全独立的,而多线程是共享一块内存空间和一组系统资源,有可能互相影响. 线程本身的数据通常只有寄存器数据,以及一个程序执行时使用的堆栈,所以线程的切换比进程切换的负担要小。 多线程基本概念 class TestSingleThread { public static void main(String[] args) { m1(); } public static void m1() { m2(); } public static void m2() { System.out.println(hello); } } 进程和线程 main方法 m1方法 m2方法 线程是进程的组成部分,一个进程可以拥有多个线程,一个线程必须有一个父进程。线程可以拥有自己的堆栈,自己的局部变量,但不再拥有系统资源,它与父进程的其他线程共享该进程所拥有的全部资源。 线程的执行时抢占式的。 一个线程可以创建和撤销另一个线程。 进程和线程 Java的线程是通过Java的软件包java.lang中定义的类Thread来实现的。当生成一个Thread类的对象之后,就产生了一个线程,通过该对象实例,可以启动线程、终止线程、或者暂时挂起线程等。 创建线程的方式 创建线程的方式 (1) 通过继承Thread类来创建并启动多线程的步骤: 定义Thread类的子类,并重写该类的run方法,该run方法的方法体就是代表了线程需要完成的任务。因此我们经常把run方法称为线程执行体。 创建Thread子类的实例,即创建线程对象。 用线程对象的start方法来启动该线程。 例:CreateThread1.java (2) 实现Runnable接口来创建并启动多条线程的步骤如下: 定义Runnable接口的实现类,并重写该接口的run方法,该run方法的方法体同样是该线程的线程执行体。 创建Runnable实现类的实例,并以此为实例作为Thread的参数来创建Thread对象,该Thread对象才是真正的线程对象。 创建线程的方式 cl

文档评论(0)

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

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

1亿VIP精品文档

相关文档