拒绝策略
当工作队列中的任务已到达最大限制,并且线程池中的线程数量也达到最大限制,这时如果有新任务提交进来,该如何处理呢。这里的拒绝策略,就是解决这个问题的,jdk中提供了4中拒绝策略:
1、DiscardPolicy
该策略下,直接丢弃任务,什么都不做。
2、AbortPolicy【默认拒绝策略】
该策略下,直接丢弃任务,并抛出RejectedExecutionException异常。
3、DiscardOldestPolicy
该策略下,抛弃进入队列最早的那个任务,然后尝试把这次拒绝的任务放入队列
4、CallerRunsPolicy
由调用线程处理该任务
如果任务被拒绝了,则由调用线程(提交任务的线程)直接执行此任务。