线程池合理估算大小

2023-10-27

分配线程池究竟设置多大还是要看你的执行的任务,不要单方面看,线程任务分为Cpu密集型和IO密集型、混合型。

主要看系统运行的任务是什么类型的,
主要分为3种类型任务:CPU密集型和IO密集型,混合型任务
cpu密集型:一般分配N+1,什么是cpu密集型认为,则是任务运行时间快,像单线程处理,如果这种任务你把线程池数量设置过大,会导致cpu上下文切换,这样会导致cpu额外开心和耗时,本来是解决任务异常执行或处理并发任务。

IO密集型:一般发分配2N+1(意思则是(2*cpu线程核心数量)+1),这种任务是偏向IO处理连接,这种任务为什么要设置那么大呢。因为任务密集都会访问IO处理,导致线程回收很慢,如果设置过小会导致线程排队,多半会保存到队列里面,如果队列和执行队列满的话。这样可能会线程任务丢失,导致不必要的麻烦。

混合型:一般这类型要从线程任务分析到底是CPU密集型还是IO密集型,就用相应的对策。如果各占一半,则就创建两个线程,分别为Cpu密集和IO密集型。这样保证cpu合理安排。

线程池估算数量=(线程等待时间+cpu运行时间)/线程运行时间

如果不确定设置都是,就分析系统任务有多少,每个任务执行时间来计算。
可以根据压测来测试线程池运行,是否异常。

队列大小根据任务分析来设置,不要过大或过小。适可就行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

线程池合理估算大小 的相关文章

  • java.lang.NoClassDefFoundError:org.apache.batik.dom.svg.SVGDOMImplementation

    我在链接到我的 Android LibGDX 项目的 Apache Batik 库时遇到了奇怪的问题 但让我们从头开始 在 IntelliJ Idea 中我有一个项目 其中包含三个模块 Main Android 和 Desktop 我强调的
  • Java - 将节点添加到列表的末尾?

    这是我所拥有的 public class Node Object data Node next Node Object data Node next this data data this next next public Object g
  • JAXb、Hibernate 和 beans

    目前我正在开发一个使用 Spring Web 服务 hibernate 和 JAXb 的项目 1 我已经使用IDE hibernate代码生成 生成了hibernate bean 2 另外 我已经使用maven编译器生成了jaxb bean
  • INSERT..RETURNING 在 JOOQ 中不起作用

    我有一个 MariaDB 数据库 我正在尝试在表中插入一行users 它有一个生成的id我想在插入后得到它 我见过this http www jooq org doc 3 8 manual sql building sql statemen
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • Spark 1.3.1 上的 Apache Phoenix(4.3.1 和 4.4.0-HBase-0.98)ClassNotFoundException

    我正在尝试通过 Spark 连接到 Phoenix 并且在通过 JDBC 驱动程序打开连接时不断收到以下异常 为简洁起见 下面是完整的堆栈跟踪 Caused by java lang ClassNotFoundException org a
  • 反射找不到对象子类型

    我试图通过使用反射来获取包中的所有类 当我使用具体类的代码 本例中为 A 时 它可以工作并打印子类信息 B 扩展 A 因此它打印 B 信息 但是当我将它与对象类一起使用时 它不起作用 我该如何修复它 这段代码的工作原理 Reflection
  • JavaMail 只获取新邮件

    我想知道是否有一种方法可以在javamail中只获取新消息 例如 在初始加载时 获取收件箱中的所有消息并存储它们 然后 每当应用程序再次加载时 仅获取新消息 而不是再次重新加载它们 javamail 可以做到这一点吗 它是如何工作的 一些背
  • Liferay ClassNotFoundException:DLFileEntryImpl

    在我的 6 1 0 Portal 实例上 带有使用 ServiceBuilder 和 DL Api 的 6 1 0 SDK Portlet 这一行 DynamicQuery query DynamicQueryFactoryUtil for
  • 操作错误不会显示在 JSP 上

    我尝试在 Action 类中添加操作错误并将其打印在 JSP 页面上 当发生异常时 它将进入 catch 块并在控制台中打印 插入异常时出错 请联系管理员 在 catch 块中 我添加了它addActionError 我尝试在jsp页面中打
  • 路径中 File.separator 和斜杠之间的区别

    使用有什么区别File separator和一个正常的 在 Java 路径字符串中 与双反斜杠相反 平台独立性似乎不是原因 因为两个版本都可以在 Windows 和 Unix 下运行 public class SlashTest Test
  • Spring @RequestMapping 带有可选参数

    我的控制器在请求映射中存在可选参数的问题 请查看下面的控制器 GetMapping produces MediaType APPLICATION JSON VALUE public ResponseEntity
  • JRE 系统库 [WebSphere v6.1 JRE](未绑定)

    将项目导入 Eclipse 后 我的构建路径中出现以下错误 JRE System Library WebSphere v6 1 JRE unbound 谁知道怎么修它 右键单击项目 特性 gt Java 构建路径 gt 图书馆 gt JRE
  • 如何在控制器、服务和存储库模式中使用 DTO

    我正在遵循控制器 服务和存储库模式 我只是想知道 DTO 在哪里出现 控制器应该只接收 DTO 吗 我的理解是您不希望外界了解底层域模型 从领域模型到 DTO 的转换应该发生在控制器层还是服务层 在今天使用 Spring MVC 和交互式
  • Java执行器服务线程池[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果我使用 Executor 框架在
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • simpleframework,将空元素反序列化为空字符串而不是 null

    我使用简单框架 http simple sourceforge net http simple sourceforge net 在一个项目中满足我的序列化 反序列化需求 但在处理空 空字符串值时它不能按预期工作 好吧 至少不是我所期望的 如
  • 将 List 转换为 JSON

    Hi guys 有人可以帮助我 如何将我的 HQL 查询结果转换为带有对象列表的 JSON 并通过休息服务获取它 这是我的服务方法 它返回查询结果列表 Override public List
  • 使用 xpath 和 vtd-xml 以字符串形式获取元素的子节点和文本

    这是我的 XML 的一部分

随机推荐

  • 分布式事务神器:Spring Cloud Alibaba Seata 实战解析

    catalog 摘要 引言 官网 背景与挑战 Seata 的崛起 深入分析 Seata 核心概念解析 事务模式探索 快速上手 Seata 环境准备 分布式事务示例 高级应用与实践 Seata 集群部署与高可用性 自定义扩展与适配 性能优化与
  • (94)Verilog实现计数器

    94 Verilog实现计数器 1 1 目录 1 目录 2 FPGA简介 3 Verilog HDL简介 4 Verilog实现计数器 5 结语 1 2 FPGA简介 FPGA Field Programmable Gate Array 是
  • [leetcode: Python]389. Find the Difference

    题目 Given two strings s and t which consist of only lowercase letters String t is generated by random shuffling string s
  • 开源路上的酸甜苦辣

    多年前决定开源时 我们挺兴奋的 作为典型码农 用 开源是日常 而全力投入 做 开源 对我们绝大部分人都是头一遭 我们也曾天真地以为 开源 能有多难呢 不就是把代码放出去 大家一起用 一起写嘛 但是 开源 这事儿真的是这样子么 还是先看几个灵
  • #include <math.h>中sin,cos函数的使用

    在使用QT的时候遇到绘制类似仪表盘的问题 要定位仪表盘上刻度的坐标然后进行刻度线的绘制 需要把仪表盘角度等分 然后通过角度正余弦函数sin cos函数获得刻度线的坐标 math h中的sin和cos等函数的入参原型如下 double sin
  • 电池防反电路

    通常情况下直流电源输入防反接保护电路是利用二极管的单向导电性来实现防反接保护 如下图1示 图1 串联二极管保护系统不受反向极性影响 二极管有0 7V的压降 这种接法简单可靠 但当输入大电流的情况下功耗影响是非常大的 以输入电流额定值达到2A
  • Linux内核(5) - 内核学习的相关资源

    世界上最缺的不是金钱 而是资源 当我在一份报纸上看到这句大大标题时 我的第一反应是 作者一定是个自然环保主义者 然后我在羞愧得反省自身的同时油然生出一股对这样的无产主义理想者无比崇敬的情绪来 于是 我继续往下看 因此在XXX还未正式面市之时
  • sql之dml语句,语法和思路

    这些都是我自学时手打到文本文档 在复制粘贴到博客的 有一些命令格式不对 但全部百分百原创 如果有疑问或者不对的地方 欢迎评论区指正 也可以加q群592383030来探讨 我就是自学的普通人 不卖课 不涉及补习机构 我会出一整套mysql的学
  • OSS设置CORS规则以后还是报No 'Access-Control-Allow-Origin'解决方法

    OSS设置CORS规则以后还是报No Access Control Allow Origin 解决方法 在OSS控制台设置了CORS规则以后 通过JS程序去调用的时候报No Access Control Allow Origin heade
  • 合并两个数组为有序数组:

    合并两个数组为有序数组 思路 先合并再排序 数组的合并 利用 System arraycopy 方法实现数组复制 1 System中提供了一个native静态方法arraycopy 可以使用这个方法来实现数组复制 2 public stat
  • Anaconda打开Navigator报错-Navigator Error An unexpected error occurred on Navigator start-up

    问题如图 Windows下 1 使用管理员运行 conda prompt 2 执行命令 conda update anaconda navigator 3 还是不行就试试命令 anaconda navigator reset 来源 Navi
  • Opencv contours找出最大轮廓

    在处理二值图像时 常用 cv2 findContours 查找轮廓 如下所示 find all contours contours hierarchy cv2 findContours binary cv2 RETR TREE cv2 CH
  • vue前端缓存问题解决方案

    问题描述 大家用vue脚手架搭建前端工程时 常被缓存问题所困扰 具体的表现就是 当程序版本升级时 用户因为缓存访问的还是老的页面 然后很多同学很暴力的直接在index html中加入了这几行代码 升级时缓存问题倒解决了 但直接导致了用户每次
  • 用Eclipse创建第一个Spring项目(最最入门级)

    网上关于Spring的介绍资料已经数不胜数 但大多篇幅冗长 初学者不易理解记忆 这里先作一个简短的提炼 不作详细解释 主要内容是带大家创建一个Spring项目 感受一下这东西到底是什么样的 1 Spring Framework是用来干嘛的
  • 高效实现数据仓库的七个步骤

    高效实现数据仓库的七个步骤 数据仓库和我们常见的RDBMS系统有些亲缘关系 但它又有所不同 如 果你没有实施过数据仓库 那么从设定目标到给出设计 从创建数据结构到编写数据分析程序 再到面对挑剔的用户的评估 整个过程都会带给你一种与以往的项目
  • Hbase常用SQL命令

    这里写目录标题 Hbase常用SQL命令 1 启动hbase 2 进入hbase 3 hbase查看数据表 4 hbase建表语句 5 hbase禁用表 启用表 6 hbase添加单行数据 7 hbase文档添加数据 8 hbase扫描表
  • 分块矩阵求行列式

    分块矩阵求行列式 注意 第二个公式有误 将矩阵写为 P A B B A 那么det P det A det A BA 1B def A BA 1B a 1 1 A a b1 B a b2 a 0或a 1均可构造无穷多解 def A det
  • 基于Redis的原子操作优化秒杀逻辑

    对于缓存中间件Redis 相信各位小伙伴或多或少都有听说过 甚至实战过 本文我们将基于SpringBoot整合Redis中间件 并基于其优秀的 单线程 特性和原子操作实现一种 分布式锁 进而控制 高并发情况下多线程对于共享资源的访问 最终解
  • 递归法取硬币java_递归算法

    递归算法 在函数或子过程的内部 直接或者间接地调用自己的算法 特点 1 递归就是在过程或函数里调用自身 2 在使用递归策略时 必须有一个明确的递归结束条件 称为递归出口 3 递归算法解题通常显得很简洁 但递归算法解题的运行效率较低 所以一般
  • 线程池合理估算大小

    分配线程池究竟设置多大还是要看你的执行的任务 不要单方面看 线程任务分为Cpu密集型和IO密集型 混合型 主要看系统运行的任务是什么类型的 主要分为3种类型任务 CPU密集型和IO密集型 混合型任务 cpu密集型 一般分配N 1 什么是cp