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

Java线程池任务结束后线程只增不减,是否属于内存泄漏问题?

线程池线程未复用原因说明

当前现象属于标准线程池的正常工作逻辑,和内存泄漏无关:

  • 你配置的corePoolSize为10,核心线程数未达到10之前,每提交一个新任务线程池都会优先创建新的核心线程,哪怕已有核心线程处于空闲状态,这个阶段不会触发线程复用逻辑。你当前日志里最高只出现Async-6,还没到核心线程数阈值,自然看不到旧线程编号被复用。
  • 等核心线程数占满10之后,后续新提交的任务会先进入容量为10的等待队列,空闲的核心线程会主动从队列拉取任务执行,这时候你就能观测到Async-1到Async-10的线程编号被重复使用。
  • 核心线程默认是常驻内存不会被回收的,所以线程数涨到10之后就会稳定不再上升,不属于异常的缓存机制问题。

异常情况排查参考

如果后续线程数超过10还持续上涨,才需要排查两个问题:

  • 是否每次提交任务都新建了线程池实例,而不是复用同一个全局单例的线程池
  • 是否错误修改了线程池的allowCoreThreadTimeOut参数,且核心线程超时时间设置过短,导致核心线程频繁销毁重建,出现线程号持续递增的情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 21:57:01