线程池的拒绝策略,是什么?内置的有哪些特点?

    科技2022-07-17  115

    拒绝策略:

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

    四种内置的拒绝策略

    一、AbortPolicy(默认):

    直接抛出RejectedExecutionException异常阻止系统的正常运行

    二、CallerRunsPolicy :

    ”调用者运行“ 一种调节机制,该策略既不会抛弃任务也不会抛出异常,而是将某些任务回退到调用者,从而降低新任务的流量

    三、DiscardOldesPolicy :

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

    四、DiscardPolicy:

    该策略默默丢弃无法处理的任务 , 不予任何处理也不抛出异常,(如果允许任务丢失,弱一致性,这是最好的一种策略)

    Processed: 0.013, SQL: 8