核心线程数的设置

1、不同种类的线程池都适用什么场景呢?

2、选择的关键点是:1 尽量减少线程切换和管理的开支,2最大化利用cpu

3、并发比较高,耗时比较短的任务

  • 这种场景适合线程尽量少,因为如果线程太多,任务执行时间段很快就执行完了,有可能出现线程切换和管理多耗费的时间,大于任务执行的时间,这样效率就低了。线程池线程数可以设置为CPU核数+1

4、并发比较低,耗时比较长的任务

  • a) IO密集型:假如是业务时间长集中在IO操作上,也就是IO密集型的任务,因为IO操作并不占用CPU,所以可以加大线程池中的线程数目,这样一个io任务可能会执行很长时间,所以在执行io操作时它的cpu可以让出来去执行别的任务,让CPU处理更多的业务。线程池线程数可以设置为CPU核数*2
  • b) 计算密集型: 假如是业务时间长集中在计算操作上,也就是计算密集型任务,这个操作也需要使用cpu的,如果线程太多并且每个任务又特别耗时不但会影响其他业务,严重时还会导致cpu飙升100%,所以线程数不宜太多

5、并发高,耗时长的任务

  • 解决这种类型任务的关键不在于线程池而在于整体架构的设计
  • 首先第一步:看看这些业务里面某些数据是否能做缓存
  • 第二步:看看能否把这些高并发,耗时长的任务能不能拆分成。高并发,低耗时,或者低并发,高耗时的场景
  • 第三步:增加服务器数量,增加计算单元。
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值