线程池任务太多如何拒绝

本文重点讲解当线程池的任务过多时,如何去拒绝这些任务。

拒绝条件

  1.线程已经shutdown了,需要拒绝

  2.最大线程数或者队列已经满了,需要拒绝

拒绝策略

  1.abortPolicy: 直接抛出异常

  2.discardPolicy:任务丢弃,收不到通知

  3.discardOldestPolicy:丢弃最老的

  4.callerRunsPolicy:调用者运行策略,让提交任务的线程去运行。

  备注:前三种会有任务丢失,第四种相当于是一种反馈策略。

原文地址:https://www.cnblogs.com/cnxieyang/p/12744379.html