java多线程解决通过接口获取较大量数据

        调用接口的实际场景

       在很多项目中都会有调用其他系统接口的情况,有的接口效率正常,有的接口慢的要死,慢到头绿。本人在实际中遇到过一个响应时间10s以上的接口,并且因为业务要求需要调用该接口很多次(10000+),说白了就是单次的传参数获取一些数据,单个接口的数据量很小,但是对方没有提供批量数据获取的接口,木的办法。

       那么就单纯的以10s来计算,调用10000次也就是10w秒,大该要28个小时(这谁受得了),于是作为刚毕业不到两年的我终于想到了用多线程来暂时解决这个问题,用很简单的思维来想,起码我用10个线程来跑,是不是就只需要2.8个小时了?(还是接受不了)好在短时间内一批数据只用调用一次接口,多搞点线程几十分钟也能还能满足需求。

       多线程解决思路

       于是开始整线程,思路很清晰

      1、均分参数集合,将传递的参数List分成10个(就先按10个线程来跑吧)。这里有个小问题,如何将list平均分配为10个list,整数的当然很好弄,我最开始的想法是:如果list不是能整除10的,就除以9,前面9个是平均的,剩下的余数归给最后一个。(最后一个肯定少)这种方法不值得写出来。于是在网上看到一个较为优质的方法

源自于

  • 3
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值