美文网首页
合理配置线程池之corePoolSize(二十七)

合理配置线程池之corePoolSize(二十七)

作者: WinkTink | 来源:发表于2020-12-18 15:45 被阅读0次

如何配置线程池中的线程数(corePoolSize):分为两种:

依据:根据机器的硬件:**System.out.println(Runtime.getRuntime().availableProcessors());**查看自己机器的CPU核心数。

1.cpu密集型:

CPU密集的意思是该任务需要大量的运算,而没有阻塞,CPU一直全速运行。

CPU密集任务只有在真正的多核CPU才可能得到加速(通过多线程)。

/而在单核CPU上,无论你开几个模拟的多线程该任务都不可能得到加速,因为CPU总的运算能力就那些。(不过现在应该没有单核的CPU了吧)/

CPU密集型的任务配置尽可能少的线程数量:

一般公式:CPU核数+1个线程的线程数。

2.IO密集型:(分两种):

1.由于IO密集型任务的线程并不是一直在执行任务,则应配置尽可能多的线程,如CPU核数*2

2.IO密集型,即任务需要大量的IO,即大量的阻塞。在单线程上运行IO密集型的任务会导致浪费大量的CPU运算能力浪费在等待。所以在IO密集型任务中使用多线程可以大大的加速程序运行。故需要·多配置线程数:

参考公式:CPU核数/(1-阻塞系数 ) 阻塞系数在(0.8-0.9)之间

比如8核CPU:8/(1-0.9) = 80个线程数

相关文章

  • 合理配置线程池之corePoolSize(二十七)

    如何配置线程池中的线程数(corePoolSize):分为两种: 依据:根据机器的硬件:**System.out....

  • ThreadPoolExecutor

    参数: corePoolSize 核心线程池大小 (1) 当线程池小于corePoolSize时,新提交任务将创建...

  • Spring Boot之ThreadPoolTaskExecut

    初始化线程池 corePoolSize 线程池维护线程的最少数量keepAliveSeconds 线程池维护线程...

  • java基础-多线程

    java线程池的实现 ThreadPoolExecutor java线程池几个参数 corePoolSize当线程...

  • java 线程池使用和详解

    线程池的使用 构造方法 corePoolSize:线程池维护线程的最少数量 maximumPoolSize:线程池...

  • 线程池核心参数

    线程池核心参数 1)corePoolSize(线程池基本大小) 2)maximumPoolSize(线程池最大数量...

  • ThreadPoolExecutor七大构造参数详解

    corePoolSize:线程池核心线程数(平时保留的线程数) maximumPoolSize:线程池最大线程数(...

  • ThreadPoolExecutor

    1 创建线程池 通过ThreadPoolExecutor创建线程池: corePoolSize:核心线程的数量。m...

  • 面试题2019年7月

    线程池原理 参考:Java 线程池原理分析 线程池工作原理:1、线程数量小于 corePoolSize,直接创建新...

  • ThreadPool

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

网友评论

      本文标题:合理配置线程池之corePoolSize(二十七)

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