调用接口的实际场景
在很多项目中都会有调用其他系统接口的情况,有的接口效率正常,有的接口慢的要死,慢到头绿。本人在实际中遇到过一个响应时间10s以上的接口,并且因为业务要求需要调用该接口很多次(10000+),说白了就是单次的传参数获取一些数据,单个接口的数据量很小,但是对方没有提供批量数据获取的接口,木的办法。
那么就单纯的以10s来计算,调用10000次也就是10w秒,大该要28个小时(这谁受得了),于是作为刚毕业不到两年的我终于想到了用多线程来暂时解决这个问题,用很简单的思维来想,起码我用10个线程来跑,是不是就只需要2.8个小时了?(还是接受不了)好在短时间内一批数据只用调用一次接口,多搞点线程几十分钟也能还能满足需求。
多线程解决思路
于是开始整线程,思路很清晰→,
1、均分参数集合,将传递的参数List分成10个(就先按10个线程来跑吧)。这里有个小问题,如何将list平均分配为10个list,整数的当然很好弄,我最开始的想法是:如果list不是能整除10的,就除以9,前面9个是平均的,剩下的余数归给最后一个。(最后一个肯定少)这种方法不值得写出来。于是在网上看到一个较为优质的方法
源自于