Java线程池内置4种拒绝策略:1. AbortPolicy默认抛异常;2. CallerRunsPolicy由调用方执行任务以降速;3. DiscardPolicy静默丢弃;4. DiscardOldestPolicy丢弃队列中最老任务。

这是线程池的默认策略。当任务被拒绝时,直接抛出 RejectedExecutionException 异常。
适用场景:对任务失败敏感、需要立即感知并处理异常的系统,比如支付、订单创建等关键链路。
由提交任务的线程(比如主线程、Web容器线程)自己执行该任务。
效果是“降速”:当线程池压力大时,调用方被拖慢,自然降低任务提交速率,避免雪崩。
立即学习“Java免费学习笔记(深入)”;
静默丢弃新提交的任务,既不抛异常,也不做任何日志或通知。
风险高,容易掩盖问题,一般不建议直接使用。
丢弃队列中等待时间最长的那一个任务,再尝试把当前新任务加入队列。
本质是“用旧换新”,适合新任务时效性远高于旧任务的场景。
以上就是java线程池有哪些拒绝策略的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号