起航学习网

- 让每个人都能学到最前沿新知识、新技能!
起航学习网
当前位置: 起航学习网 > 职业教育 > Java多线程的生命周期,看这6点就对了

Java多线程的生命周期,看这6点就对了

时间:2021-01-05 10:43:05来源:东莞达内 作者:东莞达内 已有: 名学员访问该课程

  快捷搜索:东莞java培训(10)

前言:任何对象都有生命周期,线程也不例外,它也有自己的生命周期。线程的整个生命周期分为六个阶段,分别是新建状态(New)、可运行状态(Runnable)、运行状态(Running)、阻塞状态(Blocked)、等待状态(Waiting)和死亡状态(Terminated),线程的不同状态表明了线程当前正在进行的活动(有些地方把等待状态分为两种,加了

任何对象都有生命周期,线程也不例外,它也有自己的生命周期。线程的整个生命周期分为六个阶段,分别是新建状态(New)、可运行状态(Runnable)、运行状态(Running)、阻塞状态(Blocked)、等待状态(Waiting)和死亡状态(Terminated),线程的不同状态表明了线程当前正在进行的活动(有些地方把等待状态分为两种,加了一个定时等待Timed-Waiting),下面跟东莞达内一起看看~

Java多线程的生命周期,看这6点就对了_www.epx365.cn

下面东莞达内对线程生命周期中的六种状态进行详细说明。

1. 新建状态(New)

创建一个线程对象后,该线程对象就处于新建状态,此时它不能运行,和其它Java对象一样,仅仅由Java虚拟机为其分配了内存,没有表现出任何线程的动态特征。

2. 可运行状态(Runnable)

当线程对象调用了start()方法后,该线程就进入可运行状态。处于可运行状态的线程位于可运行池中,此时它只是具备了运行的条件,能否获得CPU的使用权开始运行,还需要等待系统的调度。

3. 运行状态(Running)

如果处于可运行状态的线程获得了CPU的使用权,开始执行run()方法中的线程执行体,则该线程处于运行状态。当一个线程启动后,它不可能一直处于运行状态(除非它的线程执行体足够短,瞬间就结束了),系统会为每一个线程分配一小段的时间来处理任务,当线程用完了这段时间,系统就会剥夺该线程占用的CPU资源,让其它线程获得执行的机会。需要注意的是,只有处于可运行状态的线程才可能转换到运行状态。

4. 阻塞状态(Blocked)和等待状态(Waiting)

如果线程由于某些原因放弃了CPU的的使用权,暂时停止运行,此线程就进入了阻塞或者等待状态,阻塞或者等待状态都是由运行状态转换而来的。下面列举出线程进入阻塞状态或等待状态的原因。

线程进入阻塞的原因:

l 线程试图获取某个对象的同步锁,而该锁被其它线程持有

l 当线程调用了一个阻塞式的IO方法

线程进入等待状态原因:

l 线程调用了某个对象的wait()方法

l 线程调用了Thread的sleep(longmillis)方法

l 线程调用了另一个线程的join()方法

当正在执行的线程进入阻塞或者等待状态后,其它处于可运行状态的线程就可以获得执行的机会。被阻塞或者等待的线程会在适当的时候重新进入可运行状态,等待系统的调度。下面列举出线程由阻塞状态或等待状态进入可运行状态的时机。

线程由阻塞状态进入可运行状态的时机:

l 线程成功地获取了某个对象的同步锁

l 阻塞式的IO方法已经返回

线程由等待状态进入可运行状态的时机:

l 其它线程调用了某个对象的notify()或者notifyAll()方法

l Thread的sleep(longmillis)方法经过了指定的时间

l 调用join()方法的线程执行完毕

需要注意的是,线程从阻塞或者等待状态只能进入可运行状态,而不能直接进入运行状态,也就是说,结束阻塞和等待的线程需要重新进入可运行池中,等待系统的调度。

5. 死亡状态(Terminated)

线程的run()方法正常执行完毕或者线程抛出一个未捕获的异常(Exception)、错误(Error),线程就进入死亡状态。一旦进入死亡状态,线程将不再拥有运行的资格,也不能再转换到其它的状态。

更多Java技术知识在东莞达内Java培训~

 

来源地址:http://www.epx365.cn/qgtk/202168198.html

来源标题:Java多线程的生命周期,看这6点就对了



免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉

(责任编辑:海口达内)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
培训学校
海口达内 访问该机构站点 报名留言 加为好友 用户等级:注册会员 用户级别:10 机构名称:达内科技教育集团 联 系 人:吴老师 联系电话:18529066336 联系手机:18529066336 在线客服:起航学习网客服 在 线 QQ:起航学习网客服 电子邮件:1017604672@qq.com 网站域名:http://hk.tedu.cn/ 注册时间:2018-07-27 15:07 最后登录:2021-01-05 16:01