使用多线程分别请求,然后将结果聚合处理【项目使用】

简介: 使用多线程分别请求,然后将结果聚合处理【项目使用】

使用多线程分别请求,然后将结果聚合处理【项目使用】

使用多线程分别请求,然后将结果聚合处理,提高效率,减少请求时间

            ExecutorService service = Executors.newSingleThreadExecutor();
            ExecutorCompletionService<List<CityRankInfo>> ece = new ExecutorCompletionService<>(service);
           ece.submit(() -> {
                return iHotelRankOutService.searchCityRankInfoByRankType(1, req.getTrackid());
            });
            ece.submit(() -> {
                return iHotelRankOutService.searchCityRankInfoByRankType(2, req.getTrackid());
            });
            ece.submit(() -> {
                return iHotelRankOutService.searchCityRankInfoByRankType(3, req.getTrackid());
            });
            Future<List<CityRankInfo>> take1 = ece.take();
            Future<List<CityRankInfo>> take2 = ece.take();
            Future<List<CityRankInfo>> take3 = ece.take();
            if (null != take1) {
                rankInfosList.addAll(take1.get());
            }
              if (null != take2) {
                rankInfosList.addAll(take2.get());
            }
              if (null != take3) {
                rankInfosList.addAll(take3.get());
            }
            //然后对rankInfoList进行处理即可
相关文章
|
8月前
|
C语言
多线程并发项目
多线程并发项目
|
8月前
|
网络协议 Linux C++
Linux C/C++ 开发(学习笔记十一 ):TCP服务器(并发网络网络编程 一请求一线程)
Linux C/C++ 开发(学习笔记十一 ):TCP服务器(并发网络网络编程 一请求一线程)
153 0
|
23天前
|
安全 Java API
java如何请求接口然后终止某个线程
通过本文的介绍,您应该能够理解如何在Java中请求接口并根据返回结果终止某个线程。合理使用标志位或 `interrupt`方法可以确保线程的安全终止,而处理好网络请求中的各种异常情况,可以提高程序的稳定性和可靠性。
46 6
|
6月前
|
云计算
云计算问题之线程请求的栈深度大于虚拟机所允许的深度如何解决
云计算问题之线程请求的栈深度大于虚拟机所允许的深度如何解决
35 1
|
5月前
|
Java 测试技术 Android开发
Android项目架构设计问题之构造一个Android中的线程池如何解决
Android项目架构设计问题之构造一个Android中的线程池如何解决
39 0
|
5月前
|
Cloud Native Java 调度
项目环境测试问题之线程同步器会造成执行完任务的worker等待的情况如何解决
项目环境测试问题之线程同步器会造成执行完任务的worker等待的情况如何解决
|
6月前
|
存储 安全 Java
Java面试题:假设你正在开发一个Java后端服务,该服务需要处理高并发的用户请求,并且对内存使用效率有严格的要求,在多线程环境下,如何确保共享资源的线程安全?
Java面试题:假设你正在开发一个Java后端服务,该服务需要处理高并发的用户请求,并且对内存使用效率有严格的要求,在多线程环境下,如何确保共享资源的线程安全?
79 0
|
6月前
|
并行计算 安全 算法
Java面试题:Java内存管理与多线程并发处理,设计一个Java应用,该应用需要处理大量并发用户请求,同时要求对内存使用进行优化,如何通过垃圾回收机制优化内存使用?
Java面试题:Java内存管理与多线程并发处理,设计一个Java应用,该应用需要处理大量并发用户请求,同时要求对内存使用进行优化,如何通过垃圾回收机制优化内存使用?
49 0
|
6月前
|
监控 Java
Java面试题:Java内存、多线程与并发工具包的深度探索,Java内存管理策略及其优化技巧,Java多线程并发控制的工具类与机制,Java并发工具包在实际项目中的应用
Java面试题:Java内存、多线程与并发工具包的深度探索,Java内存管理策略及其优化技巧,Java多线程并发控制的工具类与机制,Java并发工具包在实际项目中的应用
53 0
|
7月前
|
Java Linux Shell
Linux环境下,让Jar项目多线程部署成为可能
Linux环境下,让Jar项目多线程部署成为可能
70 1