线程的生命周期
新建:在线程使用关键字new创建一个线程时,该线程就处于新建的状态;
就绪:在线程对象调用start()方法时,该线程处于就绪状态;
运行:如果处于就绪状态的线程获得了CPU,开始执行线程执行体,此时线程处于运行状态;
阻塞:当线程调用以下方法时,会进入阻塞状态
- 线程调用sleep()方法,主动释放所占用的处理器资源;
- 线程调用阻塞式IO方法,在该方法返回之前,线程处于阻塞状态;
死亡:线程会以下面三种方式来结束,结束后线程就进入死亡状态
- run()或call()方法执行完成,线程正常结束;
- 线程抛出异常;
- 调用线程的stop()方法;
注意:
- 启动线程的方式是调用start()方法而不是run()方法;
- 已经死亡的线程,无法通过start()方法再次调用;