线程池状态体系 RUNNING运行状态:正常运行,接受新任务并处理队列任务 SHUTDOWN关闭状态:调用shutdown()后,不接受新任务,处理剩余任务 STOP停止状态:调用shutdownNow()后,不接受新任务,中断执行中任务 TIDYING整理状态:任务队列空且无工作线程时,调用terminated() TERMINATED终止状态:terminated()执行完,线程池彻底停止线程状态体系(一般情况) 创建New:线程对象已创建,资源正在分配初始化 就绪Runnable:准备执行,等待CPU时间片,start()后或等待恢复时进入 运行Running:获取CPU时间片,执行任务代码,多核可多线程同时运行 阻塞Blocked:等待条件满足,不占CPU资源,如等待I/O、锁等 死亡Terminated:任务执行完、被显式终止或异常时,生命周期结束Java线程状态扩展 运行中状态:将就绪和运行状态统一称呼 等待状态WAITING:调用Object的wait()且无超时设置时进入 超时等待TIME_WAITING:调用带超时参数方法,如Thread.sleep(),超时后恢复执行