首页 > 编程语言 > 详细

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

时间:2020-07-16 22:54:19      阅读:56      评论:0      收藏:0      [点我收藏+]

1.线程状态

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

技术分享图片

 

注:

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

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

 

技术分享图片

注:

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,则终止线程运行

例:

技术分享图片

 

4.线程暂停

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

sleep存在异常InterruptedException

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

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

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

例:

技术分享图片

 

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

原文:https://www.cnblogs.com/chengkuan/p/13324703.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!