阅读量:4
Java线程池的拒绝策略有以下几种:
ThreadPoolExecutor.AbortPolicy:默认的拒绝策略,当任务添加到线程池失败时,会抛出RejectedExecutionException异常。
ThreadPoolExecutor.CallerRunsPolicy:当任务添加到线程池失败时,会将任务返回给调用者执行。这样一来,线程池的处理能力就会降低,因为调用者需要等待任务执行完毕才能继续执行。
ThreadPoolExecutor.DiscardPolicy:当任务添加到线程池失败时,会直接丢弃该任务,不会抛出任何异常。
ThreadPoolExecutor.DiscardOldestPolicy:当任务添加到线程池失败时,会先尝试将最早进入线程队列的任务删除,然后重新尝试添加任务。
可以通过调用ThreadPoolExecutor的setRejectedExecutionHandler方法来设置线程池的拒绝策略。