线程池的状态
线程池的状态包括:RUNNING、SHUTDOWN、STOP、TIDYING、TERMINATED;
RUNNING :运行状态,线程池被一旦被创建,就处于 RUNNING 状态,并且线程池中的任务数为 0。该状态的线程池会接收新任务,并处理工作队列中的任务。
- 调用线程池的 shutdown()方法,可以切换到SHUTDOWN 关闭状态;
- 调用线程池的 shutdownNow()方法,可以切换到STOP停止状态;
SHUTDOWN :关闭状态,该状态的线程池不会接收新任务,但会处理工作队列中的任务;
- 当工作队列为空时,并且线程池中执行的任务也为空时,线程池进入TIDYING 状态;
STOP :停止状态,该状态的线程不会接收新任务,也不会处理阻塞队列中的任务,而且会中断正在运行的任务;
- 线程池中执行的任务为空,进入 TIDYING 状态;
TIDYING :整理状态,该状态表明所有的任务已经运行终止,记录的任务数量为0;
- terminated()执行完毕,进入TERMINATED 状态;
TERMINATED :终止状态,该状态表示线程池彻底关闭。