当前位置: 首页 > article >正文

线程池核心参数?如何设置?

这句先记住。线程池核心参数决定了线程池最多开多少线程任务怎么排队线程空闲多久回收线程怎么创建满了之后怎么办一、线程池 7 个核心参数Java 里最常见的是ThreadPoolExecutorThreadPoolExecutor( corePoolSize,//核心线程数 maximumPoolSize,//最大线程数 keepAliveTime,//空闲线程存活时间 unit,//时间单位 workQueue,//任务阻塞队列 threadFactory,//线程工厂 handler//拒绝策略 )1. corePoolSize核心线程数。线程池中长期保留的线程数量。意思是即使线程空闲一般也不会被回收任务来了优先用核心线程处理2. maximumPoolSize最大线程数。线程池允许创建的最大线程数量。如果核心线程都忙队列也满了这时候才会继续创建非核心线程直到达到最大线程数。3. keepAliveTime空闲线程存活时间。非核心线程空闲多久后会被回收。比如最大线程数临时扩容到 20但高峰过后空闲了超过这个时间就会释放掉多余线程。4. unitkeepAliveTime的时间单位。比如秒、毫秒。5. workQueue任务阻塞队列。当核心线程都在忙时新任务先进入队列排队。常见队列ArrayBlockingQueue有界队列LinkedBlockingQueue链表队列SynchronousQueue不存任务直接交给线程DelayQueue延迟任务6. threadFactory线程工厂。用来自定义创建线程比如线程名称是否守护线程优先级7. handler拒绝策略。当线程数到最大、队列也满了再来新任务怎么办。常见 4 种AbortPolicy直接抛异常CallerRunsPolicy让提交任务的线程自己执行DiscardPolicy直接丢弃DiscardOldestPolicy丢掉队列最老的任务二、线程池执行流程任务来了先看核心线程满没满没满就创建核心线程执行满了就放进阻塞队列队列满了再创建非核心线程如果线程数也到最大了就执行拒绝策略你只要记住这条主线先核心线程再队列再最大线程最后拒绝策略。三、这些参数怎么设置1. 先分任务类型CPU 密集型 / IO 密集型CPU 密集型比如复杂计算加密解密大量逻辑运算这种任务主要吃 CPU线程太多反而频繁切换。一般经验是核心线程数 ≈ CPU 核数 或 CPU 核数 1IO 密集型比如查数据库调接口读写文件网络请求这种任务大部分时间在线程阻塞等待 IO。一般线程数可以大一些经验上核心线程数 ≈ CPU 核数 × 2或者更大结合压测定更严谨一点可以说线程数 CPU 核数 × (1 等待时间 / 计算时间)2. 队列不要无脑用无界队列这个很重要。如果使用无界队列比如默认很大的LinkedBlockingQueue任务会一直堆积maximumPoolSize基本失效极端情况下可能 OOM所以生产里通常更建议使用有界队列防止任务无限堆积。3. 最大线程数要结合系统承载能力不能越大越好。因为线程太多会带来频繁上下文切换内存占用增大系统抖动所以最大线程数一般是在核心线程数基础上留一定弹性用于应对流量高峰。4. 拒绝策略要结合业务比如核心任务不能丢 → 可考虑CallerRunsPolicy非核心日志类任务可丢 → 可考虑丢弃策略金融交易类任务一般不能静默丢弃所以拒绝策略一定要和业务容错匹配。四、面试里怎么讲“如何设置”线程池参数设置要结合任务类型和系统容量来定。CPU 密集型任务线程数一般接近 CPU 核数避免线程切换开销IO 密集型任务因为线程经常阻塞等待所以线程数可以适当放大。队列一般建议用有界队列避免任务无限堆积导致 OOM最大线程数则是在核心线程数基础上预留一定扩容空间。拒绝策略要根据业务场景来选比如核心任务不能丢时可以用 CallerRunsPolicy。最终参数通常还要结合压测结果调整而不是写死一个万能值。五、面试回答版线程池核心参数主要有7 个核心线程数 corePoolSize、最大线程数 maximumPoolSize、空闲线程存活时间 keepAliveTime、时间单位 unit、阻塞队列 workQueue、线程工厂 threadFactory 和拒绝策略 handler。线程池执行流程一般是任务先交给核心线程执行核心线程满了进入队列队列满了再创建非核心线程超过最大线程数后触发拒绝策略。参数设置上一般要看任务类型CPU 密集型任务线程数通常接近 CPU 核数IO 密集型可以适当放大队列建议用有界队列避免任务无限堆积最大线程数根据系统承载能力预留弹性拒绝策略则要结合业务是否允许降级或丢弃。总体上线程池参数没有固定值通常要结合业务场景和压测结果来定。

相关文章:

线程池核心参数?如何设置?

这句先记住。线程池核心参数决定了:线程池最多开多少线程?任务怎么排队?线程空闲多久回收?线程怎么创建?满了之后怎么办?一、线程池 7 个核心参数Java 里最常见的是 ThreadPoolExecutor:ThreadP…...

YOLOv6 安装及使用详细教程

前言 YOLOv6 是美团研发的轻量级目标检测算法,兼顾检测精度与推理速度,适配工业落地与学术入门场景。该算法针对工程化部署深度优化,环境配置简单、运行流程清晰,是零基础用户入门目标检测的优选方案。本文将手把手带你完成 YOLO…...

Windows安装OpenClaw龙虾(新手入门必备)

目录 一、准备工作(必做) 二、方案A:原生PowerShell一键安装(新手首选) 1. 打开管理员PowerShell 2. 解锁脚本执行权限(必做) 3. 一键安装OpenClaw 4. 验证安装 5. 初始化配置&#xff0…...

基于终端 ANSI 转义序列的“等离子体流体动画”

目录 创意项目:终端等离子体场 (Terminal Plasma) 代码设计的“极限”考量 挑战扩展方向 如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。 挑战开发极限,不仅是代码量的缩减,更是对算法、位…...

JVM面试题100道(含答案解析)

在Java后端开发面试中,JVM(Java Virtual Machine) 几乎是必问的核心知识点。 很多互联网公司(如大厂或中大型技术团队)在技术面试中都会重点考察 JVM内存模型、垃圾回收机制、类加载机制以及JVM调优能力。 本文整理了一…...

【杂谈】结构体的内存对齐与位段

目录 一、结构体内存对齐问题(节省时间) 1.什么是内存对齐 2.需要使用内存对齐的原因 3.内存对齐的规则 4.举例 5.小结 二、结构体实现位段操作(节省空间) 1.位域简介与使用原因 2.位域的定义与使用时的注意事项 3.举例 …...

前端开发 - this 指向问题(直接调用函数、对象方法、类方法)

一、直接调用函数 1、基本介绍非严格模式:this 为 window严格模式,this 为 undefined2、演示 function fn() {console.log(this); } fn();# 非严格模式下运行,输出结果Window {window: Window, self: Window, document: document, name: , lo…...

2026精选课题-基于springboot大学生社团管理系统的设计与实现

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/学生代理交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...

智能电网无线通信中仅存在式被动侦察的基准数据集

大家读完觉得有帮助记得关注和点赞!!!摘要在智能电网通信中对仅存在式被动侦察进行基准测试具有挑战性,因为攻击者只接收信号,但附近的观察者仍然可以通过额外的阴影和多径效应改变传播,从而重塑信道相干性…...

Web安全实战:绕过__wakeup漏洞攻防解析

1. 从一道CTF题说起:为什么我的反序列化总被“叫醒”? 大家好,我是老张,一个在Web安全领域摸爬滚打了十来年的老兵。今天想和大家聊聊一个在PHP安全里既经典又有点“狡猾”的漏洞——__wakeup魔术方法的绕过。这事儿说起来&#x…...

Vue3+WebRtcServer实现海康监控rtsp流视频的跨域播放解决方案

1. 为什么你的海康监控视频在Vue3里播不出来? 最近好几个做安防项目的朋友都跟我吐槽同一个问题:他们在Vue3项目里想直接播放海康威视摄像头的RTSP视频流,结果要么黑屏,要么疯狂报跨域错误。浏览器控制台里一片红,全是…...

深入解析tile_images与tile_images_offset:图像拼接的灵活应用

1. 从“拼图游戏”到工业视觉:为什么你需要了解图像拼接 如果你玩过拼图游戏,或者用手机App把几张照片拼成一张长图,那你对“图像拼接”这个概念一定不陌生。在工业视觉和图像处理领域,这种需求同样普遍,甚至更为关键。…...

Ubuntu22.04下BBR与CUBIC拥塞控制算法的性能对比测试

1. 为什么我们要关心拥塞控制算法? 如果你用过家里的宽带,或者在公司里传过大文件,肯定遇到过这种情况:明明网速标称很高,但下载东西就是时快时慢,看视频也总在缓冲。很多时候,这口“锅”可能不…...

手把手教你玩转Nunchaku FLUX.1:从安装到出图,新手完整指南

手把手教你玩转Nunchaku FLUX.1:从安装到出图,新手完整指南 想试试用AI生成图片,但看到复杂的界面和参数就头疼?别担心,今天我来带你从零开始,一步步玩转Nunchaku FLUX.1 CustomV3这个强大的文生图工具。你…...

R提供了一些函数用于判断逻辑表达式的结果

下面内容摘录自《用R探索医药数据科学》专栏文章的部分内容(原文5241字)。 3章4节:R的逻辑运算和矩阵运算_逻辑判断矩阵在r语言中的应用-CSDN博客 逻辑运算和矩阵运算是R语言中两个重要的功能模块,前者用于逻辑判断和条件筛选&am…...

Linux下hadoop2.9.2单节点伪分布搭建完全教程

配置静态 IP 在实际应用中,由于我们使用的是 DHCP(Dynamic Host Configuration Protocol: 动态主机配置协议)服务器来分配的地址,那么每次重启DHCP 服务器 ip 地址有 可能是会变动的。 而我们用Linux 来搭建集群学习Ha…...

OpenClaw 技能插件开发实战:适配职业教育的 AI 实训案例

一、前言随着人工智能技术在职业教育领域的深度渗透,传统AI实训模式逐渐暴露出诸多痛点:实训内容脱离企业真实应用场景、学生上手门槛高、实训平台功能固化难以拓展、缺乏可落地的实战化开发任务,难以满足职教领域“岗课赛证”融合的人才培养…...

【Docker】Linux系统上卸载旧Docker、卸载Podman并重新安装Docker及配置国内镜像源

一、卸载 Podman 可以使用如下命令卸载 Podman dnf remove -y podman buildah 二、卸载旧版本 Docker 若系统中已存在旧版 Docker,请按以下步骤彻底卸载: 1.停止Docker服务 sudo systemctl stop docker 2. 卸载 Docker 相关软件包 sudo yum remov…...

halcon5_1

图像采集助手-Image Aequisition 1.配置相机IP 和巨型帧等 2.通过海康MVS软件 找到 对应halcon 版本 下载MVS https://www.hikrobotics.com/cn/machinevision/service/download/?module0 3. 找到对应halcon版本的 海康相机三方配置文件 4.找到Halocn文件目录 粘贴上图文…...

Vue3+Vue-Router项目在Edge浏览器无法最小化问题

补充: 不同环境的情况不一样,可参考:https://github.com/vuejs/router/issues/2644 ---------------------------------------------------------------------------- 已有大佬排查并解决了该问题: https://blog.csdn.net/u01…...

C/C++数据结构与算法(第二弹)

目录 栈和队列 1.栈 1.1栈的概念以及结构 1.2栈的实现 2.队列 2.1队列的概念以及结构 2.2队列的实现 3.栈和队列OJ题 1. 括号匹配问题。OJ链接 2. 用队列实现栈。OJ链接 3. 用栈实现队列。OJ链接 4. 设计循环队列。OJ链接 二叉树 1.树概念以及结构 1.1树的概念 …...

(75页PPT)TPM自主保养概论(附下载方式)

篇幅所限,本文只提供部分资料内容,完整资料请看下面链接 https://download.csdn.net/download/2501_92808811/92608801 资料解读:《(75页PPT)TPM自主保养概论》 详细资料请看本解读文章的最后内容。 本文旨在系统性…...

数据治理(一)

数据治理的介绍及作用 数据治理:是运用专业方法和技术手段理清企业的数据资产并开展治理工作,是围绕将数据作为企业资产而开展的一系列的具体化工作。 作用:保证数据的可信可靠可用,满足业务对数据质量和数据安全的系列举措。 框…...

[Redis小技巧10]深入 Redis Stream:从原理到生产级实践

一、Stream 是什么?为什么需要它? Redis Stream 是 Redis 5.0 引入的一种持久化、可追加、支持消费者组的消息队列数据结构。它解决了传统 LIST(缺乏消息确认)和 PUB/SUB(非持久化、无重试机制)在构建可靠消…...

基于A* 算法的无人机三维路径规划:MATLAB实现之旅

基于A* 算法的无人机三维路径规划算法,MATLAB编程实现。在无人机应用日益广泛的今天,高效的路径规划算法至关重要。A 算法凭借其在寻找最优路径方面的出色表现,成为众多路径规划场景中的热门选择。本文就来聊聊基于A 算法的无人机三维路径规划…...

PID 和 LQR 主动悬架模型对比:探索汽车平顺性的优化之路

【PID和LQR主动悬架模型对比】分别建立了PID控制和LQR控制的的主动悬架模型,比较两种控制器的控制效果。 以悬架主动力为控制目标,输入为B级随机路面,输出为车身垂向加速度、俯仰角加速度、悬架动挠度等平顺性评价指标,可做汽车平…...

探索一维光子晶体态密度案例:从理论到代码实现

一维光子晶体态密度案例在光子学领域,一维光子晶体态密度是一个极为有趣且重要的研究方向。它不仅有助于我们深入理解光子在周期性结构中的行为,还为诸如滤波器、波导等光学器件的设计提供了理论基础。 一维光子晶体理论基础 一维光子晶体,简…...

探索 10KV 级联 H 桥并网系统:性能与控制的奇妙之旅

级联H桥并网 10KV。 每相12个H桥,单个H桥直流电压为850V,采用电流闭环控制。 为了测试系统控制性能效果,在1s时,控制输出电流从2000A下降到1500A,控制效果好,电流电压无超调,网侧电流THD只有0.3…...

风光储柴直流微电网的并离网切换模型与技术实现

风光储柴直流微电网可并离网切换 含: 1.永磁直驱风机+mppt+整流+并网逆变 mppt采用扫描搜索法 整流采用转速外环电流内环双闭环控制 并网逆变采用电压外环电流内环控制 满功率运行 2.PV+mppt+boost+并网逆变…...

研究flow3d模拟选区激光熔化Inconel 718制件内部缺陷的形成机理,优化工艺参数,从...

研究flow3d模拟选区激光熔化Inconel 718制件内部缺陷的形成机理,优化工艺参数,从而得到具有优良性能的产品。 SLM成形过程中存在许多复杂的物理现象,如 粉末层的吸收率、熔池的熔化与凝固、因表面张力引起的马兰格尼对流效应和由于材料达到沸…...