线程具有生命周期,其中包含5种状态。
- 出生状态
- 就绪状态
- 运行状态
- 暂停状态(包含休眠,等待,阻塞)
- 死亡状态
出生状态就是线程被创建时处于的状态,在用户使用该线程实力派调用start()方法之前都处于出生状态,在用户调用start()方法后,线程就处于就绪状态,又叫做可执行状态,当线程得到系统资源之后就处于执行状态,一旦线程进入运行状态,他就会在就绪和运行状态下转换,他同时也可能进入暂停或者死亡状态,当线程调用Sleep(),wait()方法或者发生阻塞时会进入暂停状态,当在休眠结束,调用notify()方法,notifyAll()方法或者阻塞解除时,会重新进入就绪状态,当线程执行完毕,或者线程发生错误,异常时,线程进入死亡状态。