gzyueqian
13352868059

Java多线程的生命周期是多久?

更新时间: 2020-11-04 15:10:40来源: 粤嵌教育浏览量:6858

    任何的物体都是有生命周期的,不同的物品生命周期也是不一样的,就拿java多线程的生命周期来说吧,多线程的生命周期是分为五个阶段的,分别是新建状态(New)、可运行状态(Runnable)、运行状态(Running)、阻塞状态(Blocked)、等待状态(Waiting)和死亡状态(Terminated)。下面粤嵌科技就以这些状态来给大家讲解下他们的生命周期。

  1. 新建状态(New)


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


  2. 可运行状态(Runnable)


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


  3. 运行状态(Running)


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


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


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


  5. 死亡状态(Terminated)


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


  以上就是粤嵌科技给大家整理的关于java多线程的生命周期了,如果说你还想了解更多关于java的专业的知识的话可以点击我们的在线咨询,我们会有专业的讲师来给你解答。粤嵌科技是一家专业的java培训机构,如果说你想要学习java的话那么粤嵌科技欢迎大家来我们公司的java培训班进行实地考察,也可以点击我们文章下面的获取试听资格按钮来获取我们的java课程免费试听资格,在试听中可以更加深入的了解粤嵌科技。

免费预约试听课