Java的Executor框架之关闭线程池

Java的Executor框架之关闭线程池

Java的Executor框架之关闭线程池

Executor线程池状态

线程池有几种状态,比如RUNNING,SHUTDOWN,STOP,TIDYING,TERMINATED等,看下每种状态:

  1. RUNNING:线程池能够接受新任务,并且能够处理对队列中的任务
  2. SHUTDOWN:线程池不能够接受新任务,但是能够处理对队列中的任务
  3. STOP:线程池不能够接受新任务,并且不能够处理对队列中的任务
  4. TIDYING:没有运行的任务,任务都已经停止,调用terminated方法状态到TERMINATED
  5. TERMINATED:线程池停止


Java的Executor框架之关闭线程池

Executorc线程池状态转换

关闭线程池

两种方式关闭线程池,shutdown和shutdownNow,这两种有所不同。

  1. shutdown方法,先把线程池设为SHUTDOWN,已有的任务继续执行,但是空闲的工作线程都会中断,不会接受新的任务,等待现有的线程执行完毕。
  2. shutdownNow方法,先把线程池设为STOP,不再接受新的任务,中断现在执行的线程。
Java的Executor框架之关闭线程池

shutdown方法

Java的Executor框架之关闭线程池

shutdownNow方法


分享到:


相關文章: