如果当前同时运行的线程数量达到最大线程数量并且队列也已经被放满了任时, ThreadPoolTaskExecutor 定义一些策略:
1、 ThreadPoolExecutor.AbortPolicy:抛出 RejectedExecutionException 来拒绝新任务的处理。
2、 ThreadPoolExecutor.CallerRunsPolicy:调用执行自己的线程运行任务。您不会任务请 求。但是这种策略会降低对于新任务提交速度,影响程序的整体性能。另外,这个策略喜欢增 加队列容量。如果您的应用程序可以承受此延迟并且你不能任务丢弃任何一个任务请求的话, 你可以选择这个策略。
3、 ThreadPoolExecutor.DiscardPolicy:不处理新任务,直接丢弃掉。
4、 ThreadPoolExecutor.DiscardOldestPolicy:此策略将丢弃最早的未处理的任务请求。
Was this helpful?
0 / 0