多线程基础之线程的生命周期

Posted goxcheer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程基础之线程的生命周期相关的知识,希望对你有一定的参考价值。

一个java线程从启动到结束运行,可能经历若干状态。

    技术分享图片

    NEW:一个已创建而未启动的线程处于该状态,由于一个线程只启动一次,所以只有一次处于该状态。

    RUNNABLE:该状态是一个复合状态。包括READY和RUNNING。前者表示该线程处于可以被线程调度器调度成RUNNING状态。后者表示该线程的run方法正在被

  jvm虚拟机调用,通过yeild方法可以变为READY状态。

    BLOCKED:一个线程发起一个阻塞式I/O操作后,或者被其它线程独占资源(比如锁),相应的线程会处于该状态,当线程重新获得资源后,又可以变为RUNNABLE.

    WAITING : 一个线程执行了某些方法后就会处于这种等待状态。包括Object.wait(),Thread.join(),LockSupport.park(Object).从WAITING变为RUNNABLE,Object.notify(),

/notifyAll()和LockSupport.unPart(Object).

    TIMED_WATING : 不是无限期等待,带有时间限制,时间限制一到,不管如何,自动转为RUNNABLE

    TERMINATED: Thread.run()正常返回或抛出异常提前终止都会处于这个状态,只会保持一次,由于一个线程只启动一次

 

以上是关于多线程基础之线程的生命周期的主要内容,如果未能解决你的问题,请参考以下文章

Java基础笔记(四:多线程基础及生命周期)

Java多线程基础--线程生命周期与线程协作详解

Java多线程基础--线程生命周期与线程协作详解

线程八大基础核心四(线程生命周期)

并发基础之线程的生命周期

Java并发基础Java线程的生命周期