美文网首页
线程池(五)线程池四种拒绝策略

线程池(五)线程池四种拒绝策略

作者: 香山上的麻雀 | 来源:发表于2020-02-04 20:29 被阅读0次

    简介

    线程池等待队列已经排满,再也塞不下新的任务了,同时线程池的maximumPoolSize线程也达到了最大值,无法继续为新任务服务。
    这个时候我们需要拒绝策略机制合理的处理这个问题。
    JDK内置的拒绝策略:

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

    实现接口
    以上内置策略均实现了RejectedExecutionHandler接口

    相关文章

      网友评论

          本文标题:线程池(五)线程池四种拒绝策略

          本文链接:https://www.haomeiwen.com/subject/bpudxhtx.html