首页 > 编程语言 > 详细

如何设置线程池的线程数?

时间:2020-07-14 17:45:28      阅读:48      评论:0      收藏:0      [点我收藏+]

  合理的设置线程池的线程数需要针对不同的任务类型而定,任务类型可以分为cpu密集型、IO密集型和混合型。

1)cpu密集型

  cpu密集型指的是线程处理任务时,cpu参与计算的时间比较多,这种情况下,如果设置的线程数过多,会增加上下文的切换次数,带来额外的开销。

线程数的设定公式是:线程数=(cpu核心数+1)。

2)IO密集型

  IO密集型是指在处理任务时,IO过程所占用的时间较多,在这种情况下,线程数的计算方法可以分为两种:

  方法一:线程数=cpu核心数*2,cpu所占用时间不多,可让cpu在等待IO的时候去处理其他任务,充分利用cpu。

  方法二:线程等待时间比例越多,需要更多的线程,而线程cpu所占时间越多,则需要更少线程数。

      线程数=((线程等待时间+线程cpu时间)/线程cpu时间)*cpu核心数。

3)混合型

  对于混合型,可以将任务划分成cpu密集型任务与IO密集型任务,分别针对这两种任务使用不同的线程池去处理。  

如何设置线程池的线程数?

原文:https://www.cnblogs.com/menbo/p/13299870.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!