线程池参数设置

本文探讨了线程池参数设置对CPU和内存使用率的影响。计算密集型任务线程数应接近CPU核心数,而IO密集型任务线程数可适当增加。过高线程数可能导致CPU资源浪费和使用率波动,应关注CPU使用率和负载。同时,合理设定队列大小避免拒绝策略带来的性能影响和复杂性。还要考虑下游系统抗并发能力,避免对数据库或其他系统造成压力。
摘要由CSDN通过智能技术生成
     在如今的多核处理器时代,多线程技术发挥着巨大的作用,尤其对于大批量处理同类型IO密集型的任务,例如全库全表查找数据时,多线程是提升速度和性能的利器。
      近期发布的另一篇文章已经详细介绍了线程池的技术原理。但平时的开发工作中,我们可能更加关注的是线程池的使用,线程数设置多大啊?队列大小设置多大啊,等问题。
      这篇文章主要是针对前段时间对线程池的使用过程中,总结了几点参数设置方面的建议,希望对大家有用。
      使用多线程时,会面临 线程数,队列大小( corePoolSize  maxPoolSize  queueCapacity) 三个重要参数的大小设置问题。
      我根据自己前期的工作总结发现参数设置主要考虑下面几个方面:

1. 线程池中执行的任务性质

        计算密集型的任务比较占cpu,所以一般线程数设置的大小 等于或者略微大于 cpu的核数;但IO型任务主要时间消耗在 IO等待上,cpu压力并不大,所以线程数一般设置较大,例如 多线程访问数据库,数据库有128个表,可能就直接考虑使用128个线程。

2. CPU使用率

        当线程数设置较大时,会有如下几个问题:第一,线程的初始化,切换,销毁等操作会消耗不小的cpu资源

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值