直接上代码

public class GetQyWxDetail {

public void getDetail() throws Exception {//创建线程数为3的定长线程池ExecutorService executorService = Executors.newFixedThreadPool(3);//查询结果存储List<Future<List<Map>>> futureList = new ArrayList<>();//执行方法的标识String[] flagHouse = {"test1", "test2", "test3"};for (int i = 0; i < 3; i++) {String flag = flagHouse[i];Callable<List<Map>> task = () -> requestForService(flag);//执行查询方法Future<List<Map>> future = executorService.submit(task);//存储查询结果futureList.add(future);}//查询结果汇总List<Map> result = new ArrayList<>();try {//获得结果for (Future<List<Map>> future : futureList) {List<Map> param = future.get();//去重HashSet set = new HashSet(param);//把HashSet对象添加至List集合result.addAll(set);}} catch (InterruptedException e) {//任务调用get的线程在获得结果之前被中断,重新设置线程的中断状态Thread.currentThread().interrupt();} catch (ExecutionException e) {e.printStackTrace();} finally {executorService.shutdown();}//执行入库insertQyWxSend(result);}/*** 讲信息写入到企微群发中间表** @param result* @date 2022/7/12*/
public void insertQyWxSend(List<Map> result) {}/*** 根据不同的指示,执行不同的查询方法,并返回企微群发中间表相关字段信息** @param flag* @return {@link List< Map> }* @date 2022/7/12*/
public List<Map> requestForService(String flag) {List<Map> maps = new ArrayList<>();switch (flag) {case "test1":log.info("执行方法1返回结果,存放到maps");break;case "test2":log.info("执行方法2返回结果,存放到maps");break;}return maps;
}

}

Callable多线程实现执行不同方法获取同一结果相关推荐

  1. java中thread实例_Java多线程并发执行demo代码实例

    主类:MultiThread,执行并发类 package java8test; import java.util.ArrayList; import java.util.List; import ja ...

  2. new Random().Next(1, 100); 多线程同时执行结果很高概率相同,

    /// <summary>/// new Random().Next(1, 100); 多线程同时执行结果很高概率相同,/// 是用的当前时间为seed,时间相同结果相同/// /// 解 ...

  3. 定时线程_SpringBoot定时任务,@Async多线程异步执行

    一.使用SpringBoot实现定时任务 这个不是重点,就简单的实现一下,至于cron表达式怎么写也不是重点,自行百度即可. 1-1.基于 @Scheduled 注解的方式 import org.sp ...

  4. java商城项目中多线程执行_java多线程中执行多个程序的实例分析

    我们知道多线程因为同时处理子线程的能力,对于程序运行来说,能够达到很高的效率.不过很多人对于多线程的执行方法还没有尝试过,本篇我们将为大家介绍创建线程的方法,在这个基础上,对程序执行多条命令的方法进行 ...

  5. c++11 多线程 顺序执行_前阿里P8架构师总结的一些关于Java多线程的编程经验丨干货...

    推荐阅读 Java程序员备战"金九银十"必备的面试技巧(附阿里Java岗面试题) 一.认识多任务.多进程.单线程.多线程 要认识多线程就要从操作系统的原理说起. 以前古老的DOS操 ...

  6. springboot前端长轮询使用多线程异步执行任务

    1.springboot使用多线程任务时bean 不能使用@Autowired注入 可以提供一个外部类去获取bean对象 @Component public class ApplicationProv ...

  7. 【嵌入式Linux应用开发】温湿度监控系统——多线程与温湿度的获取显示

    1. 概述 ​ 在前几篇的文章中,我们已经学习了LVGL界面绘制以及paho mqtt的同步客户端和异步客户端的操作,那么本篇就会综合前面的知识,加上Linux系统的多线程以及线程间通信的知识,将LV ...

  8. Java中控制多线程顺序执行

    Java中控制多线程顺序执行 一.概述 二.普通示例 三.控制示例 3.1.设置线程优先级 3.2.使用线程类的join() 3.2.1.在主线程join() 3.2.2.在子线程join() 3.3 ...

  9. C#中使用Monitor类、Lock和Mutex类来同步多线程的执行(转)

    C#中使用Monitor类.Lock和Mutex类来同步多线程的执行 在多线程中,为了使数据保持一致性必须要对数据或是访问数据的函数加锁,在数据库中这是很常见的,但是在程序中由于大部分都是单线程的程序 ...

最新文章

  1. android的UDC功能,Android实现搜索历史功能
  2. 01-python中字符串的常见操作
  3. zookeeper开机自启动
  4. Linux基础学习一:初步认识linux
  5. 向量表示,投影,协方差矩阵,PCA
  6. Linux学习体会。
  7. 币安选择InfStones作为以太坊2.0 Staking基础设施服务商
  8. 在docker中配置apt工具与python的源均为国内源
  9. 【二分答案】【NOIP模拟10-21】的士碰撞
  10. nodejs安装anywhere快速启动一个web服务
  11. android桌面快捷网页,Android向桌面添加快捷方式,使其指向特定的网页
  12. 绝地求生刺激战场辅助卧底外挂群,菜鸟一秒变高手
  13. ERP原理学习3-5
  14. 哔哩哔哩下载的视频怎么找不到?
  15. 【万人围观】20位著名作家,100句惊艳了时光的名句
  16. cacheable更新_Spring之缓存注解@Cacheable
  17. Ajax请求成功却执行error回调方法(Ajax跨域请求问题)
  18. iOS 简单实用的音乐播放器,少年,自己做个歌单吧。。。。。。
  19. lol服务器什么时候维护,lol等短时间维护是什么?lol11月23日服务器维护详情介绍...
  20. 安卓手机很快也要普及3D Touch了

热门文章

  1. 考研与不考研,你的人生或有不同?
  2. openwrt 网络配置
  3. 2021-2027全球与中国不锈钢三脚架旋转门市场现状及未来发展趋势
  4. 【DDR3_Electrical Characteristics and AC Timing】_Clock Specification
  5. 毕业后5年 决定你职业生涯高度
  6. Python3.11最新版亲测结果
  7. 高清精美壁纸:2013年3月桌面日历壁纸免费下载
  8. 拒绝浮躁(copy来的)
  9. [codevs 1391] 伊吹萃香
  10. bbsxp2007 漏洞初探