Java多线程问题请教,如何快速处理完1000多次接口请求?
第三方系统提供的接口不支持批量接收数据, 只能一笔一笔的调用,我们有1000多条数据,就得请求1000次这个接口, 效率很是低下! 所以我想利用多线程的方式快速的调用完这1000次接口请求并处理响应, 请问我的这个思路有问题吗? 应该怎么实现呢? 这肯定要用线程池来搞吧?
回复
1个回答
test
2024-06-30
import java.util.concurrent.*;
public class Main {
public static void main(String[] args) {
ExecutorService executor = Executors.newFixedThreadPool(10);
List<Data> dataList = getDataList();
for (Data data : dataList) {
executor.submit(() -> {
// 请求
sendRequest(data);
});
}
// 关闭线程池,等待所有任务完成
executor.shutdown();
try {
// 设置最大等待时间
if (!executor.awaitTermination(1, TimeUnit.HOURS)) {
executor.shutdownNow();
}
} catch (InterruptedException e) {
executor.shutdownNow();
}
}
private static void sendRequest(Data data) {
// 发送请求
}
private static List<Data> getDataList() {
return new ArrayList<>();
}
}
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容