线程池拒绝策略

1. 拒绝策略是什么?


等待队列已经排满了,再也塞不下新任务,同时线程池中线程也已经达到maximumPoolSize数量,无法继续为新任务服务,这个时候就需要使用拒绝策略来处理。

2. 线程池四种拒绝策略简介

    • AbortPolicy(默认) 
      直接抛出RejectedExecutionException异常阻止系统正常运行。
    • CallerRunsPolicy 
      “调用者运行”一种调节机制,该策略既不会丢弃任务,也不会抛出异常,而是将某些任务回退给调用者,从而降低新任务的流量。
    • DiscardOldestPolicy 
      抛弃队列中等待最久的任务,然后把当前任务加入队列中尝试再次提交当前任务。
    • DiscardPolicy 
      直接丢弃任务,不予任何处理也不抛出异常。如果允许任务丢失,这是最好的一种方案。
posted @ 2019-09-24 21:30  要好好吃饭  阅读(166)  评论(0编辑  收藏  举报