自定义参数创建线程池ThreadPoolExecutor

该代码示例展示了如何创建一个JavaThreadPoolExecutor,配置包括核心线程数、最大线程数、存活时间、时间单位以及拒绝策略。四种不同的拒绝策略包括AbortPolicy、CallerRunsPolicy、DiscardOldestPolicy和DiscardPolicy,分别在任务被拒绝时有不同的处理方式。此外,还提到了四种不同类型的BlockingQueue实现。
摘要由CSDN通过智能技术生成
import java.util.concurrent.*;

public class T2 {
    public static void main(String[] args) {
        //定义线程池
        ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(
                2,
                4,
                1,
                TimeUnit.MINUTES,
                getQuery(),//BlockingQueue<Runnable> workQueue,
                new ThreadFactory() {
                    @Override
                    public Thread newThread(Runnable r) {
                        return null;
                    }
                },
                //AbortPolicy         -- 当任务添加到线程池中被拒绝时,它将抛出 RejectedExecutionException 异常。
                new ThreadPoolExecutor.AbortPolicy()
                //CallerRunsPolicy    -- 当任务添加到线程池中被拒绝时,会在线程池当前正在运行的Thread线程池中处理被拒绝的任务。
//                new ThreadPoolExecutor.CallerRunsPolicy()
                //DiscardOldestPolicy -- 当任务添加到线程池中被拒绝时,线程池会放弃等待队列中最旧的未处理任务,然后将被拒绝的任务添加到等待队列中。
//                new ThreadPoolExecutor.DiscardOldestPolicy()
                //DiscardPolicy       -- 当任务添加到线程池中被拒绝时,线程池将丢弃被拒绝的任务。
//                new ThreadPoolExecutor.DiscardPolicy()
        );
        
        //运行线程池
        Runnable runnable=null;
        threadPoolExecutor.execute(runnable);
        threadPoolExecutor.shutdown();
    }

     static <T> BlockingQueue<T> getQuery(){ //此处的T为 Runnable类型
         ArrayBlockingQueue<T> arrayBlockingQueue = new ArrayBlockingQueue<>(10); // 数组实现:new Object[capacity]; 有界队列
         LinkedBlockingDeque<T> linkedBlockingDeque = new LinkedBlockingDeque<>();//链表实现:class Node<E>{}; 无界队列
         SynchronousQueue<T> synchronousQueue = new SynchronousQueue<>();//此容器不会存储数据,必须有另一个线程正在等待接收这个元素。同步移交队列
         PriorityBlockingQueue<Object> priorityBlockingQueue = new PriorityBlockingQueue<>();//PriorityBlockingQueue是一个无界的基于数组的优先级阻塞队列
         return null;//选择一个进行返回


    }
}

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值