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

24.多线程(02)JAVA多线程中线程运行状态、线程休眠、线程强制运行.docx

24.多线程(02)JAVA多线程中线程运行状态、线程休眠、线程强制运行.docx

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
24. 多线程(02)本季知识点:线程的控制方法。本季继续介绍了JAVA多线程中线程运行状态、线程的休眠、线程的强制运行等常用的线程操作方法。 blog: [零基础学JAVA]Java SE应用部分-24.多线程(02) 2009-02-16上季内容回顾:?多线程的两种实现方式:?· Thread?· Runnable?最终都要求使用Thread类中start()方法启动多线程本季主要知识点:线程的控制方法线程的状态转换所有的线程实际上是同时启动的,只是抢占CPU的资源的顺序不同。线程名称的设置及取得在线程中所有的操作类都是在一个类 —— Thread类.?从提供的方法上来看:多线程中提供了getName 和setName则应该可以推断出在Thread类中必然有一个name属性。ThreadDemo01:运行结果:在程序中,我们没有设置Thread-0名称哈,下面我们设置其名称再来验证下效果main线程是由对象进行调用的,所以是由主线程控制从以上题目我们应该知道,我们之前所运行的所有的JAVA程序都是在线程上运行的。?java 类名称 -- 启动JVM的进程?里面的main 方法实际上就是一个在JVM进程上划分的线程。?如果没有为线程设置名字,则线程的默认名字为 Thread-x(x:表示数字,从0开始)?如果计数是往上增1,则所有对象肯定是共享同一个变量,则此变量肯定是static类型的。看下效果:问题:?问在JAVA程序中,每一次运行至少启动几个线程呢??· 主线程(main)?· 垃圾收集线程(GC)刚才设置名字的时候是在Thread类的对象创建完之后在设置名字的,可以在构造方法处设置线程名称:public Thread(Runnable target,String name) ;结果出来了线程控制基本方法方法名称以isXxx开头的,一般都是返回boolean类型。激活线程线程是通过start()方法启动的,在线程启动之前肯定是死的,但是线程启动之后再判断呢?此程序更能验证一点 —— 多线程的程序的输出是不固定的,谁先谁后都应该充分考虑到。设置后台线程Linux下可以很清楚的看见有后台线程。如果不设置后台线程会怎么样,看一下正常启动线程程序进入死循环现在设置程序后台运行我们发现程序运行一段时间后自己跑后台执行了,程序在前台看不见了线程的休眠如果说现在不使用Thread类中提供好的sleep方法,那么如何可以让线程暂时停止运行呢?发现程序运行有点快,我们加个for空循环现在可以清楚看见程序在一个个运行了多线程类中提供专门的休眠方法 —— sleep?public?static?void sleep(long millis) -- 休眠毫秒??????????throws?InterruptedException?-- 抛出了中断异常程序达到了相同的效果哈~三个线程同一时间跳出来哈~这就是一个多线程休眠的操作线程的强制运行public?final?void join() -- 证明此方法不能被子类覆写?????????????? throws?InterruptedException我们看一下这个t.txt文件哈~当i值为100时,强制执行Thread-0线程总结?1、取得当前线程:?public static Thread currentThread() ;?2、取得线程的名字:?public String getName() ;?3、设置线程的名字:?public void setName(String name)?在构造方法上也有支持:?|-?public Thread(String name) ;?直接在构造方法处设置线程的名字?|-?public Thread(Runnable target,String name)?4、JAVA程序启动时至少启动两个线程?·?main:主方法?·?gc:垃圾收集?5、线程的休眠?如果不用Thread类中提供的方法,则可以通过空循环的方式完成延迟操作?public static void sleep(毫秒) throws InterruptedException?6、线程的强制运行?public final void join() throws InterrtupedException#############################################本文出自 “王乾De技术博客” 博客,谢绝转载!

文档评论(0)

xina171127 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档