线程池核心线程数参数配置

本文探讨了如何根据列表大小、固定数量和CPU核心数智能配置线程池,包括使用Math.min函数限制核心线程数,固定大小的线程池实例,以及利用Runtime.availableProcessors()获取并调整线程池参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

线程池参数配置

1.根据list大小创建核心线程数 最大不超过5个

int poolSize = Math.min(model.getXProductInfoList().size(), 5);

2.写死

new ThreadPoolExecutor(2, 3, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(10));
CompletableFuture.runAsync(() -> asynProcessXProductRefund(context, param, model), ex);
ex.shutdown();

3.根据cpu核数设置

//单独第一个类 获取cpu核数  times在配置中设置 方便后期修改
Runtime.getRuntime().availableProcessors() * times / 2;

int availableProcessors = new RuntimeHelper().getAvailableProcessors();
int corePoolSize = availableProcessors < 1 ? 1 : availableProcessors;  二分之一 核心线程数
int maximumPoolSize = corePoolSize * 2;  核心线程数
long keepAliveTime = 60L;
TimeUnit unit = TimeUnit.MILLISECONDS;
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
        .setNameFormat(ThreadConsts.ASSGIN_THREAD_NAME).build();
RejectedExecutionHandler assginRejectPolicy = new AssginRejectPolicy();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值