拒绝策略
当工作队列中的任务已到达最大限制,并且线程池中的线程数量也达到最大限制,这时如果有新任务提交进来,该如何处理呢。这里的拒绝策略,就是解决这个问题的,jdk中提供了4中拒绝策略:
1、DiscardPolicy
该策略下,直接丢弃任务,什么都不做。
2、AbortPolicy【默认拒绝策略】
该策略下,直接丢弃任务,并抛出RejectedExecutionException异常。

3、DiscardOldestPolicy
该策略下,抛弃进入队列最早的那个任务,然后尝试把这次拒绝的任务放入队列
4、CallerRunsPolicy
由调用线程处理该任务
如果任务被拒绝了,则由调用线程(提交任务的线程)直接执行此任务。
本文详细介绍了Java线程池的四种拒绝策略:丢弃(DiscardPolicy)、抛出异常(AbortPolicy)、丢弃最旧任务(DiscardOldestPolicy)和调用者运行(CallerRunsPolicy),并阐述了它们在实际场景中的选择与应用。
2790

被折叠的 条评论
为什么被折叠?



