【JAVA SE基础篇】56.线程状态、方法

1.线程状态

新生状态->就绪状态->运行状态->死亡状态

【JAVA SE基础篇】56.线程状态、方法

注:

1.线程死亡后不能重新开启

2.线程阻塞后进入就绪状态

【JAVA SE基础篇】56.线程状态、方法

注:

1.每个线程new一个对象后,都有自己的工作空间,一个工作空间匹配一个线程

2.进入就绪状态的四种方法:start方法,阻塞接触,yield方法,jvm将cpu从本地线程切换到其他线程

3.进入阻塞状态的四种原因:sleep,wait,join,io等操作

4.进入死亡状态的2种原因:代码执行结束,线程强制结束(stop/destory)

2.线程方法

1.sleep():

使线程停止运行一段时间,将处于 阻塞状态

如果调用了sleep方法之后,没有其他等待执行的进程,这个时候当前线程不会马上回复执行

2.join():

阻塞 指定线程等到另一个线程完成以后再继续执行

3.yield():

让当前正在执行线程暂停,不是阻塞线程,而是将线程转入 就绪状态

调用了yield方法之后,如果没有其他等待执行的线程, 此时当前线程就会马上恢复执行

4.setDaemon():

可以将指定的线程设置程后台线程, 守护线程

创建用户线程的线程结束时,后台线程也随之消亡

只能在线程启动之前把它设为后台线程

5.setPriority(int newPriority) getPriority():

线程的优先级代表的是概率

范围从1到10,默认为5

6.stop():

不推荐使用

3.线程停止

不使用JDK提供的stop()/destory()

提供一个boolean型的终止变量,当这个变量置为false,则终止线程运行

例:

【JAVA SE基础篇】56.线程状态、方法

4.线程暂停

sleep(时间)指定当前线程阻塞的毫秒数

sleep存在异常InterruptedException

sleep时间达到后线程进入就绪状态

sleep可以模拟网络延时,倒计时等

每一个对象都有一个,sleep不会释放锁

例:

【JAVA SE基础篇】56.线程状态、方法

原文 

https://www.maiyewang.com/archives/102168

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 【JAVA SE基础篇】56.线程状态、方法

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址