线程池的五种状态
1. RUNNING
线程池正常运行。既可以接受新任务,也会正常处理队列中的任务。
2. SHUTDOWN
调用线程池的 shutdown() 方法时,线程池进入 SHUTDOWN 状态。表示线程池处于正在关闭状态,线程池不再接受新任务,但是会把队列中的任务处理完。
3. STOP
调用线程池的 shutdownnow() 方法时,线程池进入 STOP 状态。表示线程池处于正在停止状态,线程池既不再接受新任务,也不会处理队列中的任务。与此同时,正在运行的线程也会被中断。
4. TIDYING
线程池中没有线程在运行后,线程池状态自动变成 TIDYING 。同时会调用 terminated() 方法,该方法是空方法,留给程序员扩展。(有点像 Object 的 finalize() 方法?)
5. TERMINATED
当 terminated() 方法执行结束后,线程池状态会变成 TERMINATED 。