当前位置: 首页 > news >正文

线程池 RejectedExecutionException 异常:Task ... rejected from...

问题与处理策略

问题描述
  • 在使用线程池时,遇到 java.util.concurrent.RejectedExecutionException 异常
java.util.concurrent.RejectedExecutionException: 
Task ... rejected from java.util.concurrent.ThreadPoolExecutor@149a36f[Running, pool size = 7, active threads = 7, queued tasks = 10, completed tasks = 1846]
问题原因
  • RejectedExecutionException 异常,这个错误表明线程池已经达到了其处理能力的上限,无法接受新的任务,线程池状态如下
  1. pool size = 7:当前线程池中的线程数

  2. active threads = 7:所有线程都在忙碌

  3. queued tasks = 10:等待执行的任务数

  4. completed tasks = 1846:已经完成的任务数

  • 线程池已达到最大线程数(7 个),且队列已满(已经有 10 个任务在等待),线程池使用了默认的 AbortPolicy 拒绝策略,可能有如下原因
  1. 核心线程数和最大线程数可能设置过小

  2. 任务队列容量可能不足

  3. 任务执行时间可能过长

  4. 任务产生速度可能过快

处理策略
  1. 调整线程池配置,调整核心线程数、最大线程数、空闲线程存活时间、使用更大的队列、改变拒绝策略等
ExecutorService executor = new ThreadPoolExecutor(4, // 核心线程数6, // 最大线程数60, // 空闲线程存活时间TimeUnit.SECONDS, // 空闲线程存活时间单位new ArrayBlockingQueue<>(100), // 使用更大的队列Executors.defaultThreadFactory(),new ThreadPoolExecutor.CallerRunsPolicy() // 改变拒绝策略,例如,使用 CallerRunsPolicy,当队列满时由提交任务的线程执行
);
  1. 或者,捕获并处理 RejectedExecutionException 异常
try {pool.execute(() -> {...});
} catch (RejectedExecutionException ex) {handleRejectedExecutionException(ex);
}
http://www.xdnf.cn/news/19225.html

相关文章:

  • 体验 OceanBase 参数模板功能
  • PLM系统如何支持利益相关者分析?沟通矩阵设计
  • 多活架构中如何规划数据一致性?
  • 无锡透平叶片将携尖端叶片登陆2025涡轮展,5月苏州相见
  • C++ `shared_ptr` 多线程使用
  • Python中type()函数的深度探索:类型检查与动态类创建
  • [已解决] Cribl 忘记admin 密码
  • 【java 13天进阶Day04】常用API、正则表达式,泛型、Collection集合API
  • 架构师面试(三十二):注册中心数据结构
  • 常见免杀框架的使用(3款)---【AniYaGUI1.2.0、AV_Evasion_Tool掩日、FoxBypass_V1.0】
  • 遨游科普:三防平板除了三防特性?还能实现什么功能?
  • 广搜bfs-P1443 马的遍历
  • Java学习手册:常见并发问题及解决方案
  • 如何提高单元测试的覆盖率
  • AI开发-效率提升小工具-“打盹弹窗侠”记录
  • Datawhale春训营赛题分析和总结
  • 每日文献(十四)——Part one
  • 2d深度预测
  • 【前端进阶】深入解析 Flexbox 布局中的 flex-shrink 与 gap 兼容性问题
  • 哈佛团队在Cancer Cell发表多模态医学AI模型,整合病理切片和基因组特征,为癌症预后提供新思路
  • stm32f407-01(GPIO)
  • 系统架构师2025年论文通用模板
  • 使用 Puppeteer 监听并打印网页的接口请求
  • 55、⾸屏加载⽩屏怎么进⾏优化
  • 观察者 ➜ 事件总线:一路走来的碎碎念
  • 每天学一个 Linux 命令(23):file
  • RT-Thread学习笔记(二)
  • Linux工具学习之【gcc/g++】
  • 守护者进程小练习
  • 文件强制删除