Java线程状态

Java线程状态

Java 语言中,任何线程一般都具有 5 种状态。即创建、就绪、运行、阻塞和终止。线程的当前状态会属于这五个状态中的一个状态。线程的状态扭转如下图:

06 线程状态扭转.png

创建状态

在程序中用构造方法创建了一个线程对象后,新的线程对象便处于创建状态,此时它已经有了内存空间和其它资源,还是不可运行状态。创建一个线程可以用 new Thread() 方式创建。

就续状态

调用线程的 start() 方法,就可以让线程从新建状态变成就绪状态,它不会立即执行线程里面的 run 方法,而是进入队列排队,等待 cpu 获取调度,此时只能表明当前的线程是可运行状态。

运行状态

当就绪线程队列里面的线程获取到 cpu 调度时,当前的线程就是运行状态,此时会执行线程里面的 run 方法。

阻塞状态

当一个运行中的线程被迫让出 cpu 资源的时候,就会从运行状态变成阻塞状态。在可执行的情况下,如果线程被调用了 sleep()、suspend()、wait() 方法的时候,线程就会进入阻塞状态,被唤起的时候会从阻塞状态变成就绪状态。

死亡状态

当线程调用 stop() 方法或者 run() 方法执行结束的时候,就会处于死亡状态。死亡状态是不可逆的,如果一个线程处于死亡状态,那么这个线程将不会在继续运行。

Java线程状态总结

在一个线程的生命周期过程中,在特定的时间,线程都会有相应的自己的状态,我们要熟练的掌握线程的状态,这样对线程的操作就会有更好的掌握。