You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring中ThreadPoolTaskExecutor的默认线程池类型:newFixedThreadPool还是newCachedThreadPool?

Spring ThreadPoolTaskExecutor 默认线程池类型说明

ThreadPoolTaskExecutor 默认既不是Executors.newFixedThreadPool(),也不是Executors.newCachedThreadPool(),它基于JDK的ThreadPoolExecutor实现,有一套独立的默认配置:

  • 核心线程数:1
  • 最大线程数:Integer.MAX_VALUE
  • 空闲线程存活时间:60秒
  • 任务队列:无界的LinkedBlockingQueue(容量为Integer.MAX_VALUE)

和两种Executors创建的线程池差异:

  • 对比newFixedThreadPool:newFixedThreadPool的核心线程数与最大线程数相等,且使用无界队列;而ThreadPoolTaskExecutor默认核心线程数仅为1,最大线程数无上限。
  • 对比newCachedThreadPool:newCachedThreadPool核心线程数为0,使用SynchronousQueue(直接提交任务给线程);ThreadPoolTaskExecutor默认核心线程数为1,用的是无界LinkedBlockingQueue,任务会先进入队列而非直接创建新线程。

模拟两种线程池的配置方式:

  • 要模拟newFixedThreadPool:将corePoolSize和maxPoolSize设为相同值(比如5),队列容量可按需调整或保持默认。
  • 要模拟newCachedThreadPool:设置corePoolSize=0、maxPoolSize=Integer.MAX_VALUE、queueCapacity=0(此时会自动使用SynchronousQueue),存活时间可保持默认60秒。

内容的提问来源于stack exchange,提问作者Dolphin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 01:45:36