线程的生命周期包含5个阶段,包括新建,就绪,运行,阻塞,销毁。 新建:就是使用new方法,new出来的线程; 就绪:调用的线程的start()方法后,线程处于等待CPU分配资源阶段,谁先抢到CPU资源,谁开始执行; 运行:当就绪的线程被调度并获得CPU资源时,便进入运行状态,run方法定义了线程的操作和功能; 阻塞:在运行状态的时候可能因为某些原因导致运行状态的线程变成了阻塞状态。比如sleep(),wait(),之后线程就处于了阻塞状态,这个时候需要其他机制将处于阻塞状态的线程唤醒,比如调用notify或者notifyAll()方法。wait超过时间后,进入锁池,同步锁释放后进入就绪状态。唤醒的线程不会立刻执行run方法,它们要再次等待CPU分配资源进入运行状态。 销毁:如果线程正常执行完毕后或线程被提前强制性的终止或出现异常导致结束,那么线程就要被销毁,释放资源。