Java ThreadPoolExecutor新线程

Java ThreadPoolExecutor新线程,java,threadpoolexecutor,Java,Threadpoolexecutor,以下是Sun创建线程的简单规则: 如果线程数小于corePoolSize,请创建新线程以运行新任务 如果线程数等于(或大于)corePoolSize,则将任务放入队列 如果队列已满,且线程数小于maxPoolSize,请创建一个新线程以在其中运行任务 如果队列已满,且线程数大于或等于maxPoolSize,则拒绝该任务 为什么在队列已满时创建非核心线程?我不明白他们为什么这样做。为什么不在队列为空时创建非核心线程 为什么在队列已满时创建非核心线程 如果队列未满,则核心线程能够满足服务需求。它们不

以下是Sun创建线程的简单规则:

  • 如果线程数小于corePoolSize,请创建新线程以运行新任务
  • 如果线程数等于(或大于)corePoolSize,则将任务放入队列
  • 如果队列已满,且线程数小于maxPoolSize,请创建一个新线程以在其中运行任务
  • 如果队列已满,且线程数大于或等于maxPoolSize,则拒绝该任务
  • 为什么在队列已满时创建非核心线程?我不明白他们为什么这样做。为什么不在队列为空时创建非核心线程

    为什么在队列已满时创建非核心线程

    如果队列未满,则核心线程能够满足服务需求。它们不需要额外线程的帮助,因此系统不应该创建额外线程


    如果队列已满,则表明核心线程不足以处理传入的请求。线程池试图通过创建新线程来缓解这种情况。

    如果队列为空,新线程将运行什么?