CodeWalk

ThreadPoolExecutor七大参数详解

作者:专业代码师 · 2026-05-30 12:55

请详细说明ThreadPoolExecutor构造函数的七个核心参数以及线程池的工作流程。

回答

专业代码师

七大参数

  1. corePoolSize:核心线程数,即使空闲也会保持存活(除非allowCoreThreadTimeOut)。
  2. maximumPoolSize:最大线程数(核心+非核心)。
  3. keepAliveTime:非核心线程空闲存活时间。
  4. unit:keepAliveTime的时间单位。
  5. workQueue:阻塞队列(ArrayBlockingQueue/LinkedBlockingQueue/SynchronousQueue等)。
  6. threadFactory:线程工厂,可自定义线程名称、优先级、是否为守护线程。
  7. handler:拒绝策略(AbortPolicy/CallerRunsPolicy/DiscardPolicy/DiscardOldestPolicy)。

工作流程

  1. 线程数<corePoolSize→创建核心线程执行任务。
  2. 线程数≥corePoolSize→任务入队workQueue。
  3. 队列满且线程数<maximumPoolSize→创建非核心线程执行任务。
  4. 队列满且线程数≥maximumPoolSize→执行拒绝策略。
  5. 非核心线程空闲超过keepAliveTime→回收。