线程的生命周期主要分为下面5个状态:
- 1新建 new Thread
当创建Thread类的一个实例(对象),继承Thread类,实现Runnable接口,调用Callable接口,此线程进入新建状态(未被启动)
- 2就绪 runnable
线程已被启动,线程对象创建好之后进入就绪状态,此时会等待获取CPU的执行权
- 3运行 running
获取到CPU执行权之后,线程对象开始运行run()方法
- 4阻塞 blocked
如果线程对象在执行过程中遇到了wait方法或者sleep方法,或者被另一个线程所阻塞(suspend方法,resume方法恢复),线程将会进入到阻塞状态。线程阻塞后要等待其他条件来触发(notify或者sleep睡眠时间到了),触发后会继续执行
- 5死亡 dead
线程对象执行结束后或被其它线程杀死(stop方法),线程就进入死亡状态
线程的生命周期画图如下: