码迷,mamicode.com
首页 > 编程语言 > 详细

线程池配置合理线程数

时间:2020-01-09 01:32:23      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:过多   多核   之间   核数   bsp   time()   参考   取数   任务   

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

 




线程池配置合理线程数

标签:过多   多核   之间   核数   bsp   time()   参考   取数   任务   

原文地址:https://www.cnblogs.com/liuyi13535496566/p/12169222.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!