1.AbortPolicy(默认):
当线程数大于maximumPoolSize+workQueue 数时,直接抛出RejectedExecutionException异常阻止系统正常运行。
2.CallerRunsPolicy:
“调用者运行”一种调节机制,该策略既不会抛弃任务,也不会抛出异常,而是将某些任务回退到调用者,从而降低新任务的流量。当线程数大于maximumPoolSize+workQueue 数时,谁调用的线程就返回给谁,(比如main线程调用的那么就有main线程去执行)
3.DiscardOldestPolicy:
抛弃队列中等待最久的任务,然后把当前任务加入队列中尝试再次提交当前任务。
4.DiscardPolicy:
直接丢弃任务,不予任何处理也不抛出异常。如果允许任务丢失,这是最好的一种方案。