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

java线程池大小与CPU关系

在使用java编写多线程程序时,往往会用到线程池,在创建线程池时,又需要我们设置线程池的大小,那么线程池的大小与机器的CPU有怎样的关系那?
首先明白几个有关CPU的概念。

cpu总核数= 物理cpu个数*每颗物理CPU的核数
cpu总逻辑单元个数= 物理cpu个数*每颗物理cpu核数*超线程数注意:超线程数量一般是2,比如intel,但是也有是4的,比如IBM的某款处理器

在我们编写的程序中,一般会分为两类:一类是IO密集型程序,另一类是计算密集型程序。
针对IO密集型程序,比如数据库交互、文件上传、网络数据传输等,设置线程数量:

设置线程数量为:2*cpu总逻辑单元个数

针对计算密集型程序,比如数据转换、递归算法、复杂的算法、加解密等,设置线程数量:

1*cpu总逻辑单元个数+1
其中,第一个1,表示的是CPU的个数。

http://www.mrgr.cn/news/57694.html

相关文章:

  • 2万字长文,如何成为一个“懂”AI 的产品经理?零基础入门到精通,收藏这一篇就够了
  • python条件表达式
  • 人生是不断排毒的过程
  • 基于微信小程序的智能校园社区服务推荐系统
  • 微服务与多租户详解:架构设计与实现
  • 蹲夜间22点加油优惠记
  • Unity插件-Intense TPS 讲解
  • 【Kubernetes实战】Kubernetes集群搭建(虚拟机环境,一主两从)
  • Pandas 文件读取与保存指南:高效处理 CSV、Excel 等多种格式数据
  • 【算法设计与分析】-回溯法的回忆-学习【期末复习篇章】
  • 绘画相关,MIDI
  • js中for...in 和 for...of 区别
  • java生成可执行文件
  • Java中的反射是什么?如何使用反射API?
  • 回归模型的增量学习的经典文章和方法
  • Docker原理|实战
  • globalAlpha:深入解析Canvas中的全局透明度
  • package,json 文件中依赖包的说明
  • 项目管理必备Git使用及关键指令(总体结构 + 必要步骤)教你如何协同开发
  • 微信小程序的日期区间选择组件的封装和使用
  • 如何使用IP代理优化亚马逊平台的操作体验
  • Get-WmiObject 命令使用
  • 为什么要进行母线槽测温?应用场景有哪些
  • Leetcode4:寻找两个正数数组中的中位数
  • 青训营 X 豆包MarsCode 技术训练营--小E的射击训练
  • “2+1拼购模式:重塑电商生态,引领消费新风尚“