线程池调优策略
- 核心参数配置
ThreadPoolExecutor executor = new ThreadPoolExecutor(
corePoolSize, // 核心线程数(常驻)
maximumPoolSize, // 最大线程数(临时线程)
keepAliveTime, // 空闲线程存活时间
TimeUnit.SECONDS,
new LinkedBlockingQueue<>(100), // 任务队列
new ThreadPoolExecutor.AbortPolicy() // 拒绝策略
);
2. 拒绝策略对比
策略 行为
AbortPolicy 直接抛出RejectedExecutionException
CallerRunsPolicy 由提交任务的线程直接执行任务
DiscardPolicy 静默丢弃新任务
DiscardOldestPolicy 丢弃队列最旧任务并重试提交
3. 监控与调优工具
指标:活跃线程数、队列堆积量、任务完成时间
工具:Spring Boot Actuator、JMX、Arthas