线程的状态
线程的状态:也就是线程从生到死的过程,以及中间经历的各种状态及状态转换。
理解线程的状态有利于提升并发编程的理解能力。
Java线程的状态
Java总共定义了6种状态
6种状态都定义在Thread类的内部枚举类中。
public class Thread{ ... public enum State { NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED; } ... }
线程的6种状态总结
NEW(新建)
线程刚被创建,但是并未启动。
Runnable(可运行)
线程已经调用了start()等待CPU调度
Blocked(锁阻塞)
线程在执行的时候未竞争到锁对象,则该线程进入Blocked状态;。
Waiting(无限等待)
一个线程进入Waiting状态,另一个线程调用notify或者notifyAll方法才能够唤醒
Timed Waiting(计时等待)
同waiting状态,有几个方法有超时参数,调用他们将进入Timed Waiting状态。带有超时参数的常用方法有Thread.sleep 、Object.wait。
Teminated(被终止)
因为run方法正常退出而死亡,或者因为没有捕获的异常终止了run方法而死亡。
新建状态( NEW ) 创建线程对象
就绪状态( RUNNABLE ) start方法
阻塞状态( BLOCKED ) 无法获得锁对象
等待状态( WAITING ) wait方法
计时等待( TIMED_WAITING ) sleep方法
结束状态( TERMINATED ) 全部代码运行完毕
标签:状态,生命周期,Thread,Waiting,WAITING,线程,方法 From: https://www.cnblogs.com/popopopopo/p/16938091.html