细说多线程之Thread VS Runnable 02
细说多线程之Thread VS Runnable 02
线程的生命周期
1. 创建
新建一个线程对象,如Thread th = new Thread();
2. 就绪
创建了线程对象后,调用了线程的start()方法(注意:此时线程只是进入了线程队列,等待获取CPU服务,具备了运行的条件,但不一定已经开始运行了)
3. 运行
处于就绪状态的线程,一旦获取了CPU资源,便进入到运行状态,开始执行run()方法里面的逻辑
4. 终止
线程的run()方法执行完毕,或者线程调用了stop()方法(已淘汰),线程便进入了终止状态。
5. 阻塞
如果当前线程由于某种原因而暂时让出了CPU资源,暂停了自己的执行,便进入了阻塞状态,如调用了sleep()方法。