金三银四精选java面试题-线程池的拒绝策略有哪些?

发布时间:2024-01-03 09:58:20
 

线程池的拒绝策略有哪些?

在线程池中,当提交的任务数量超过了线程池的最大容量,线程池就需要使用拒绝策略来处理无法处理的新任务。Java 中提供了 4 种默认的拒绝策略:

  • AbortPolicy(默认策略):直接抛出 runtime 异常,阻止系统正常运行。
  • CallerRunsPolicy:由提交该任务的线程来执行这个任务。
  • DiscardPolicy:直接丢弃任务,不给予任何处理。
  • DiscardOldestPolicy:丢弃队列中最老的一个请求,尝试再次提交当前任务。

除了这些默认的策略之外,我们也可以自定义自己的拒绝策略,实现RejectedExecutionHandler接口即可。

public class CustomRejectedExecutionHandler implements RejectedExecutionHandler {
    @Override
    public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
        // 自定义的拒绝策略处理逻辑
    }
}

 
上一篇 金三银四精选java面试题-线程池主要参数有哪些?
下一篇 金三银四精选java面试题-线程池有哪几种工作队列

文章素材均来源于网络,如有侵权,请联系管理员删除。

标签: Java教程Java基础Java编程技巧面试题Java面试题