本文主要是介绍线程池ExecutorService的4种拒绝策略,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
ThreadPoolExecutor.AbortPolicy:丢弃任务并抛出RejectedExecutionException异常。
ThreadPoolExecutor.DiscardPolicy:也是丢弃任务,但是不抛出异常。
ThreadPoolExecutor.DiscardOldestPolicy:丢弃队列最前面的任务,执行后面的任务,不抛出异常。
ThreadPoolExecutor.CallerRunsPolicy:由调用线程池的线程(比如main线程)处理该任务 ,不抛出异常,没有丢弃任务。
这里的任务,可以理解为请求线程。
正常实例:(默认的拒绝策略是:AbortPolicy)
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.RejectedExecutionHandler;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;public class Main {public static void main(String[] args) {ThreadPoolExecutor executor = new ThreadPoolExecutor(5, 10, 10, TimeUnit.MILLISECONDS,new ArrayBlockingQueue<Runnable>(5));for (int i = 0; i < 15; i++) {MyT
这篇关于线程池ExecutorService的4种拒绝策略的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!