Java多线程问题请教,如何快速处理完1000多次接口请求?

第三方系统提供的接口不支持批量接收数据, 只能一笔一笔的调用,我们有1000多条数据,就得请求1000次这个接口, 效率很是低下! 所以我想利用多线程的方式快速的调用完这1000次接口请求并处理响应, 请问我的这个思路有问题吗? 应该怎么实现呢? 这肯定要用线程池来搞吧?

阅读 2.4k
1 个回答
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<>();
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏