请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

线程池线程数量计算

老师好,该如何确定项目中线程池的线程的数量,一般项目中的线程池都是建立固定的线程数量,之前看网上有三种说法,一种是基于项目是IO,还是非IO的项目,基于CPU的核数,线程池中线程的数量就是cpu的核数;另一种是基于业务,需要每秒钟需要多少完成任务数量和每一个任务完成的时间,进行计算,从而获得项目所需的线程数;第三种是国外的并发网上译文解释作者是怎么计算的,只讲了一个IO项目的计算,很多专业术语,很难理解,老师是否有简单有效的方法呢

正在回答 回答被采纳积分+3

2回答

提问者 weibo_北桥_03164202 2019-07-15 11:10:27

老师,刚才看了连接给的方案,需要一步步的提升线程池的线程数量,通过压测结果来确定最佳的线程数,这个确实是一个最实用的方法,但是还是有点笼统,有没有已经形成理论一样的方案,

0 回复 有任何疑惑可以回复我~
  • Jimin #1
    可能说出来会让你有些失望。实际中,一个项目可能会使用多个线程池,我负责的项目不少都是这样,项目中线程池最多的用处是:1、异步,让主流程更快结束;2、加速,让某些流程更快执行完,这时基本使用5个或10个基本已经能满足要求了,很少需要继续加到20个的。受项目qps变化,及占用内存、cpu的不断变化影响,就单独某个场景而言,即使20个更ok,但考虑实际中可能有多个场景使用线程池,某个自己的ok从总体看也不一定ok了。因此我们习惯上就是10个开始,根据具体执行效果来看该增加还是减少。这个数字我们总体实践下来,还算是比较ok的,很多时候并不需要继续调整。
    回复 有任何疑惑可以回复我~ 2019-07-15 22:42:00
Jimin 2019-07-12 09:51:40

你好,关于项目开启多少个线程的问题,之前有同学问过类似的问题:http://coding.imooc.com/learn/questiondetail/74885.html
你可以先看一下,这里介绍了该如何去合理设置线程数目。看完还有什么问题,继续回复~
祝你学习愉快~

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信