java线程在运行的声明周期会有6种不同的状态,在给定的一个时刻,线程只能处于其中的一个状态。
注意:java将操作系统中的运行和就绪两个状态合并称为运行状态。
阻塞状态是进入Synchronized关键字修饰的方法或代码块获取锁的状态。
(1)线程创建后,调用start方法开始运行。
(2)线程执行wait方法,进入等待状态。
a.进入等待状态的线程需要依靠其他线程的通知才能返回运行状态
b.超时状态相当于在等待状态的基础上增加了超时限制,超时时间到达会自动返回运行状态。
(3)当线程调用同步方法时,在没有获取到锁的情况下,线程会进入阻塞状态
(4)线程在执行完Runnable的run方法后会进入到终止状态
测试代码: