代码改变世界

ThreadPoolExecutor四种拒绝策略

2021-01-09 21:55  学学技术  阅读(623)  评论(0编辑  收藏  举报

当线程数超过maximumPoolSize时需要拒绝请求,jdk中自带的拒绝策略均实现了java.util.concurrent.RejectedExecutionHandler接口,有四种策略:

1、AbortPolicy

默认的拒绝策略。直接抛出 java.util.concurrent.RejectedExecutionException异常

2、CallerRunsPolicy

将任务返还给调用者线程执行

3、DiscardPolicy

直接抛弃无法处理的任务,不予处理不抛异常。如果业务汇总允许任务丢失,这是最好的策略

4、DiscardOldestPolicy

抛弃队列中等待最久的任务,然后把当前任务加入队列中尝试再次提交当前任务