美文网首页
线程池-参数篇:1.线程数

线程池-参数篇:1.线程数

作者: rock_fish | 来源:发表于2020-08-25 14:40 被阅读0次
1. 理解CPU的核心数、线程数的关系和区别
  • CPU的核心数是指硬件上存在着几个核心。比如,双核就是包括2个相对独立的CPU核心单元组,四核就包含4个相对独立的CPU核心单元组。
  • CPU线程数是一种逻辑的概念,简单地说,就是模拟出的CPU核心数。比如,可以通过一个CPU核心数模拟出2线程的CPU,也就是说,这个单核心的CPU被模拟成了一个类似双核心CPU的功能。
  • 对于一个CPU,线程数总是大于或等于核心数的。一个核心最少对应一个线程,但通过超线程技术,一个核心可以对应两个线程,也就是说它可以同时运行两个线程。CPU的线程数概念仅仅只针对Intel的CPU才有用,因为它是通过Intel超线程技术来实现的,最早应用在Pentium4上。如果没有超线程技术,一个CPU核心对应一个线程。所以,对于AMD的CPU来说,只有核心数的概念,没有线程数的概念。
  • CPU之所以要增加线程数,是源于多任务处理的需要。线程数越多,越有利于同时运行多个程序,因为线程数等同于在某个瞬间CPU能同时并行处理的任务数。
2. 如何合理地估算线程池大小

以下几篇文章有讨论这个话题:
根据CPU核心数确定线程池并发线程数
如何合理地估算线程池大小?

引用某知乎同学的总结如下:原文链接

一般说来,大家认为线程池的大小经验值应该这样设置:(其中N为CPU的个数)

  • 如果是CPU密集型应用,则线程池大小设置为N+1
  • 如果是IO密集型应用,则线程池大小设置为2N+1
//获取处理器的数量 
System.out.println(Runtime.getRuntime().availableProcessors());

如果一台服务器上只部署这一个应用并且只有这一个线程池,那么这种估算或许合理,具体还需自行测试验证。但是,IO优化中,这样的估算公式可能更适合:

  • 最佳线程数目 = ((线程等待时间+线程CPU时间)/线程CPU时间 )* CPU数目
  • 线程等待时间所占比例越高,需要越多线程。线程CPU时间所占比例越高,需要越少线程。

下面举个例子:

比如平均每个线程CPU运行时间为0.5s,而线程等待时间(非CPU运行时间,比如IO)为1.5s,CPU核心数为8,那么根据上面这个公式估算得到:((0.5+1.5)/0.5)*8=32。这个公式进一步转化为:

  • 最佳线程数目 = (线程等待时间与线程CPU时间之比 + 1)* CPU数目
  • 线程池大小的经验值,其实是这种公式的一种估算值。

相关文章

  • 线程池-参数篇:1.线程数

    1. 理解CPU的核心数、线程数的关系和区别 CPU的核心数是指硬件上存在着几个核心。比如,双核就是包括2个相对独...

  • 线程池原理

    线程池关键参数 核心线程数corePoolSize:线程池维护线程最少数量最大线程数 maxPollSize:线程...

  • 实战! 多线程线程池分析

    一 项目线程池运用 二 线程池代码分析 线程池参数这里面的参数分别为初始线程数3,最大线程数6,线程存活时间0毫秒...

  • ThreadPool

    线程池核心参数 corePoolSize: int 核心线程数 线程池初始化后,线程池中没有任何线程,线程池会等待...

  • Android 中的线程池

    线程池核心参数 核心线程数 corePoolSize线程数容量 maximumPoolSize非核心线程被回收...

  • 线程池执行顺序

    线程池参数 corePoolSize 核心线程数, 最大线程数 maximumPoolSize, 线程没有执行任务...

  • 线程池

    一、线程池各个参数含义 参数名称含义corePoolSize核心线程数maxPoolSize最大线程数keepAl...

  • 线程池(1) --线程池的好处以及参数说明

    通过Thread创建线程的弊端 线程池 参数介绍 三个参数的关系: 1.当前运行的线程数小于corePoolSiz...

  • Java线程池

    Java线程池分析。 创建线程池 构造函数: 参数分析: corePoolSize : 核心线程数 maximum...

  • java中的线程池

    线程池创建的参数 线程池的基本大小(核心线程数) 任务队列(ArrayBlockingQueue/LinkedBl...

网友评论

      本文标题:线程池-参数篇:1.线程数

      本文链接:https://www.haomeiwen.com/subject/zruhjktx.html