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