一、线程的生命周期
新建(New)、就绪(Runnable)、运行(Runnint)、阻塞(Blocked)、死亡(Dead)
- 新建(New):当创建一个新的实例(对象),此线程进入新建状态;ps:未启动
- Theard t = new Theard();
- 就绪(Runnable)
- 线程已经启动,正在等待分配给CPU时间片,等候CPU的资源;t.start();
- 运行(Runing)
- 线程获得CPU的资源正在执行任务run()方法;此时线程除非自己放弃CPU资源,或者有更高优先级的线程进入,线程将一直运行到结束
- 死亡(dead)
- 当线程执行完毕或者被其它线程杀死,此时线程就进入了死亡状态,线程不能再进入就绪状态等待执行。
- 自然终止:正常运行run()之后终止
- 异常终止:stop()让一个线程终止运行
- 阻塞(Blocked)
- 就是线程让出CPU资源并且暂停了自己的执行,那么线程进入阻塞状态