ThreadPoolExecutor参数说明

ThreadPoolExecutor参数说明

corePoolSize(核心或者常驻,比如银行有10个窗口,平常只开放5个)
maximumPoolSize(最大线程数量,银行有10个窗口)
keepAliveTime(银行有10个窗口,只开放5个,忽然来了很多人,临时开放很多接口,结束后恢复常驻线程时间)
unit - keepAliveTime (参数的时间单位)
workQueue(常驻线程用完了,就会放到阻塞队列中)
threadFactory (执行程序创建新线程时使用的工厂)
RejectedExecutionHandler (拒绝策略,银行人已经满了叫你去别的银行处理)

拒绝策略

JDK内置拒绝策略
在这里插入图片描述

如下代码会产生拒绝默认策略

public static void main(String[] args) throws InterruptedException {
        ExecutorService executorService =new  ThreadPoolExecutor(
                2,
                3,
                1L,
                TimeUnit.SECONDS,
                new LinkedBlockingQueue<>(3),
                Executors.defaultThreadFactory(),
                new ThreadPoolExecutor.AbortPolicy()
        );
        //ExecutorService executorService = Executors.newFixedThreadPool(5);

        try {
            for (int i=0;i<20;i++){
                executorService.execute(new Thread(() ->
                    System.out.println(Thread.currentThread().getName()+"办理业务")
                ));
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            executorService.shutdown();
        }
    }

在这里插入图片描述

阿里巴巴java开发手册,说明线程不能自行显式创建,不能用Executors去创建

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44371237/article/details/121784964
今日推荐