Skip to main content

当线程数=maxPoolSize,且任务队列已满时,线程池有多种策略处理新任务。

CallerRunsPolicy

交由调用方线程运行,如果添加到线程池失败,那么主线程会自己去执行该任务。

AbortPolicy

默认策略,如果线程池队列满了丢调这个任务,并且抛出RejectdExecutionException异常。

DiscardPolicy

线程池队列满了,会直接丢掉这个任务并且不会有任何异常。

DiscardOldestPolicy

丢弃队列中最老的任务,队列满了会将最早进入队列的任务删掉腾出空间,再尝试加入队列。

本文内容转载自小滴课堂