线程池配置合理线程数

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个线程数




猜你喜欢

转载自www.cnblogs.com/liuyi13535496566/p/12169222.html