Java线程池中的四种拒绝策略

  1. CallerRunsPolicy:这是默认的拒绝策略,当线程池队列已满并且无法处理新任务时,将由提交任务的线程来执行该任务。这种策略可以降低新任务的流量,但也会增加提交任务的线程的负载。

  2. AbortPolicy:当线程池队列已满并且无法处理新任务时,将抛出RejectedExecutionException异常,阻止新任务的提交。

  3. DiscardPolicy:当线程池队列已满并且无法处理新任务时,将默默地丢弃该任务,不会给出任何提示或警告。

  4. DiscardOldestPolicy:当线程池队列已满并且无法处理新任务时,将丢弃队列中最早的未处理任务,并尝试重新提交新任务。这种策略可以保证不会丢失任何任务,但可能会影响到队列中已经等待很长时间的任务。

posted @ 2023-05-01 13:40  空空大首领  阅读(939)  评论(1编辑  收藏  举报