美文网首页
线程的生命周期?线程有几种状态

线程的生命周期?线程有几种状态

作者: 菜鸟养成记 | 来源:发表于2021-08-05 11:04 被阅读0次

    线程的生命周期和线程的五种状态

    1. 线程通常由五种状态:创建、就绪、运行、阻塞和死亡状态。

    2. 阻塞的情况又分为三种:

      • 等待阻塞:运行的线程执行wait方法,该线程会释放占用的所有资源,JVM会把线程放入”等待池中“。进入这个状态后,是不能自动唤醒的,必须依靠其他线程调用notify或notifyAll方法才能被唤醒 ,wait是Object类的方法;
      • 同步阻塞:运行在线程在获取对象的同步锁时,若该同步锁被其他线程占用,则JVM会把该线程放入”锁池中“;
      • 其他阻塞:运行的线程执行sleep或join方法,或者发出了I/O请求时,JVM会把该线程置为阻塞状态。当sleep状态超时、join等待线程终止或者超时、或者I/O处理完毕时,线程重新转入就绪状态。sleep时Thread类的方法。

    1. 新建状态(New):新创建了一个线程对象;
    2. 就绪状态(Runable):线程对象创建后,其他线程调用了该对象的start方法。该状态的线程位于可运行线程池中,变得可运行,等待CPU的使用权;
    3. 运行状态(Runing):就绪状态的线程获取了CPU,执行程序代码;
    4. 阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才有机会转入运行状态;
    5. 死亡状态(Dead):线程执行完了或者因为异常推出了run方法,该线程结束生命周期。

    相关文章

      网友评论

          本文标题:线程的生命周期?线程有几种状态

          本文链接:https://www.haomeiwen.com/subject/rvwpvltx.html