线程池配置合理线程数
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个线程数
以上是关于线程池配置合理线程数的主要内容,如果未能解决你的问题,请参考以下文章