一、线程池的拒绝策略
当等待队列满时,且达到最⼤线程数,再有新任务到来,就需要启动拒绝策略。
JDK提供了四种拒绝策 略,分别是。
1. AbortPolicy:默认的策略,直接抛出 RejectedExecutionException 异常,阻⽌系统正常运 ⾏。
2. CallerRunsPolicy:既不会抛出异常,也不会终⽌任务,⽽是将任务返回给调⽤者,从⽽降低新 任务的流量。
3. DiscardOldestPolicy:抛弃队列中等待最久的任务,然后把当前任务加⼊队列中尝试再次提交任务。
4. DiscardPolicy:该策略默默地丢弃⽆法处理的任务,不予任何处理也不抛出异常。如果允许任务 丢失,这是最好的⼀种策略。