线程池的拒绝策略

线程池的拒绝策略

1、是什么?

  • 等待队列已经排满了,再也塞不下新任务了
  • 同时,线程池中的max线程也达到了,无法继续为新任务服务。
  • 这个是时候我们就需要拒绝策略机制合理的处理这个问题。

2、JDK内置的拒绝策略

  • AbortPolicy(默认):直接抛出RejectedExecutionException异常阻止系统正常运行
  • CallerRunsPolicy:“调用者运行”一种调节机制,该策略既不会抛弃任务,也不会抛出异常,而是将某些任务回退到调用者,从而降低新任务的流量。
  • DiscardOldestPolicy:抛弃队列中等待最久的任务,然后把当前任务加人队列中尝试再次提交当前任务。
  • DiscardPolicy:该策略默默地丢弃无法处理的任务,不予任何处理也不抛出异常。如果允许任务丢失,这是最好的一种策略。

均实现了RejectedExecutionHandle接口

猜你喜欢

转载自blog.csdn.net/qq_44763720/article/details/108699485