线程池配置合理线程数

Posted liuyi13535496566

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程池配置合理线程数相关的知识,希望对你有一定的参考价值。

1.cpu密集型(例如while循环 )

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

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

而在单核cpu上,无论你开几个模拟的多线程该任务都不可能得到加速,因为cpu总的运算能力就那些

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

一般公式:cpu核数+1个线程的线程池

System.out.println(Runtime.getRuntime().availableProcessors()); //可以算出核数,例如结果为8就是8核

2.IO密集型(例如数据库取数据操作)

第一种:

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

第二种:

参考公式:cpu核数/1-阻塞系数             阻塞系数在0.8~0.9之间

比如8核cpu:8/1-0.9 = 80个线程数

 




以上是关于线程池配置合理线程数的主要内容,如果未能解决你的问题,请参考以下文章

【线程池】-4(合理配置线程池你是如何考虑的)

用了这么久线程池,你真的知道如何合理配置线程数吗?

线程池参数配置

线程数究竟设多少合理

线程数究竟设多少合理

转载线程数究竟设多少合理