美文网首页
Java线程有哪些状态,这些状态之间是如何转化的?

Java线程有哪些状态,这些状态之间是如何转化的?

作者: 宋雾代 | 来源:发表于2019-03-16 21:21 被阅读0次

新建(new):新创建了一个线程对象。

可运行(runnable):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权 。

运行(running):可运行状态(runnable)的线程获得了cpu 时间片(timeslice) ,执行程序代码。

阻塞(block):阻塞状态是指线程因为某种原因放弃了cpu 使用权,也即让出了cpu timeslice,暂时停止运行。直到线程进入可运行(runnable)状态,才有机会再次获得cpu timeslice 转到运行(running)状态。阻塞的情况分三种:

等待阻塞:运行(running)的线程执行o.wait()方法,JVM会把该线程放入等待队列(waitting queue)中。

同步阻塞:运行(running)的线程在获取对象的同步锁时,若该同步锁被别的线程占用,则JVM会把该线程放入锁池(lock pool)中。

其他阻塞:运行(running)的线程执行Thread.sleep(long ms)或t.join()方法,或者发出了I/O请求时,JVM会把该线程置为阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入可运行(runnable)状态。

死亡(dead):线程run()、main() 方法执行结束,或者因异常退出了run()方法,则该线程结束生命周期。死亡的线程不可再次复生。

相关文章

  • Java线程有哪些状态,这些状态之间是如何转化的?

    新建(new):新创建了一个线程对象。 可运行(runnable):线程对象创建后,其他线程(比如main线程)调...

  • java语言基础三(JavaGuide-20181212)

    简述线程,程序、进程的基本概念。以及他们之间关系是什么 线程有哪些基本状态?这些状态是如何定义的?31 关于 fi...

  • 34 线程状态与方法的对应关系

    问题: 线程状态有哪些,线程状态之间的转化涉及哪些方法 答案: 程序是完成一件事情的有序有限步骤集;程序的一次执行...

  • Java多线程:线程状态

    # 面试题 Java中线程有哪几种状态,线程的生命周期。 每个状态的含义。 状态之间的转化过程以及触发条件,图示。...

  • Java 线程有哪些状态?

    Java 线程有哪些状态 1.Java线程状态 1.1 线程主要状态 ①初始(NEW):新创建了一个线程对象,但还...

  • 【软件测试基础】软件缺陷生命周期

    在《软件缺陷主要包含哪些要素》一文提到软件缺陷有哪些状态,但没有细说这些状态之间是如何流转。这些状态的变化表示处于...

  • Java 线程的七种状态

    本篇感性地介绍一下 Java 线程的七种状态以及状态之间的转换 Java 线程状态转换图 Java 线程状态 在 ...

  • 问题:线程有哪些不同的状态

    问题 线程有哪些状态 答案 线程的状态 在Java中,线程一共有六个状态,每个线程在某个时刻处于这六个状态的其中一...

  • 07 JMM

    1 JMM基础 线程之间如何通信及线程之间如何同步共享内存 java线程之间共享程序的公共状态,通过写-读内存中的...

  • 线程池的状态以及拒绝策略

    首先我们回顾一下线程有哪些状态。 线程池的状态有哪些呢? 线程池的5种状态是:Running,SHUTDOWN,S...

网友评论

      本文标题:Java线程有哪些状态,这些状态之间是如何转化的?

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