1 List<List<String>> subList = CommonUtils.splitList(pendingIds, 500);

private static final ThreadFactory NAMED_THREAD_FACTORY =
 2                 new ThreadFactoryBuilder().setNameFormat("syncContractLine-pool-%d").build();
3 ThreadPoolExecutor threadPool = new ThreadPoolExecutor(10, 20, 500, TimeUnit.MILLISECONDS,
4 new LinkedBlockingQueue<>(500), NAMED_THREAD_FACTORY, new ThreadPoolExecutor.AbortPolicy());
5 IRequestContext current = RequestContextManager.getCurrent();
6 List<CompletableFuture<Void>> futureList = new ArrayList<>();
7 for (List<String> subPendingIds : subList) {
8 CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
9 RequestContextManager.setCurrent(current);
10 LOGGER.info("handle contractLines start");
11 if (CommonUtils.isNotEmpty(subPendingIds)) {
12 for (String id : subPendingIds) {
13 map.put("contract", id);
14 iContractHeaderInfoService.syncContractLineInfo(map);
15 }
16 }
17 LOGGER.info("handle contractLines end");
18 }, threadPool);
19 futureList.add(future);
20 }
21 CompletableFuture.allOf(futureList.toArray(new CompletableFuture[futureList.size()])).join();
22 threadPool.shutdown();

CompletableFuture的使用的更多相关文章

  1. Java CompletableFuture 详解

    Future是Java 5添加的类,用来描述一个异步计算的结果.你可以使用isDone方法检查计算是否完成,或者使用get阻塞住调用线程,直到计算完成返回结果,你也可以使用cancel方法停止任务的执 ...

  2. 多线程并发执行任务,取结果归集。终极总结:Future、FutureTask、CompletionService、CompletableFuture

    目录 1.Futrue 2.FutureTask 3.CompletionService 4.CompletableFuture 5.总结 ================正文分割线========= ...

  3. CompletableFuture CompletableFuture.supplyAsync 异常处理

    CompletableFuture 异常处理completeExceptionally可以把异常抛到主线程 /** * User: laizhenwei * Date: 2018-01-30 Time ...

  4. 使用CompletableFuture实现异步编程

    在开发中会碰到一种场景,如下 Object result1 = service1.func1();//执行80ms Object result2 =service2.func2();//执行50ms ...

  5. CompletableFuture基本用法

    异步计算 所谓异步调用其实就是实现一个可无需等待被调用函数的返回值而让操作继续运行的方法.在 Java 语言中,简单的讲就是另启一个线程来完成调用中的部分计算,使调用继续运行或返回,而不需要等待计算结 ...

  6. 使用CompletableFuture优化你的代码执行效率

    这篇文章详细讲解java8中CompletableFuture的特性,方法以及实例. 在java8以前,我们使用java的多线程编程,一般是通过Runnable中的run方法来完成,这种方式,有个很明 ...

  7. 多线程编程CompletableFuture与parallelStream

    一.简介 平常在页面中我们会使用异步调用$.ajax()函数,如果是多个的话他会并行执行相互不影响,实际上Completable我理解也是和它类似,是java 8里面新出的异步实现类,Completa ...

  8. 从CompletableFuture到异步编程设计

    从CompletableFuture到异步编程设计,笔者就分为2部分来分享CompletableFuture异步编程设计,前半部分总结下CompletableFuture使用实践,后半部分分享下Com ...

  9. Java CompletableFuture:allOf等待所有异步线程任务结束

    private void method() throws ExecutionException, InterruptedException { CompletableFuture<String& ...

  10. 【JUC源码解析】CompletableFuture

    简介 先说Future, 它用来描述一个异步计算的结果.isDone方法可以用来检查计算是否完成,get方法可以用来获取结果,直到完成前一直阻塞当前线程,cancel方法可以取消任务.而对于结果的获取 ...

随机推荐

  1. Svn Linux 启动

    svnserve -r -d /svn 后面是svn 安装目录

  2. 067_VFPage中Js与controller交互方式(二) RemoteAction

    上篇文章介绍了Toolkit API,是一种js的前台写法 同步调用格式:sforce.connection.method("argument1","argument2& ...

  3. 分享至: 日本神話の考古学.PDF

    书本详情 日本神話の考古学 种类:Languages - General & Miscellaneous Languages - Reference年:1993出版社:朝日新聞社语言:japa ...

  4. SQL时间函数学习

    笔记来自如鹏网杨中科老师所著的 <程序员的SQL金典> 一.日期时间函数: 日期时间类型分为 日期.时间.日期时间.时间戳     日期:"年-月-日" 没有时间分秒 ...

  5. 发生错误:请确认您的电脑是否安装了excel软件,并且您的浏览器是否允许远行excel!具体操作请查阅帮助.

    1.要先下载 activeX 这个控件 2.进入internet选项--->安全--->将安全级别调到最低 3,是否下载了excel. 4,关闭window防火墙

  6. 12组-Beta冲刺-2/5

    一.基本情况 队名:字节不跳动 组长博客:https://www.cnblogs.com/147258369k/p/15594989.html Github链接:https://github.com/ ...

  7. HIVE 调优思路和实践

    1,数据存储调优 1.1 设置压缩: 设置中间数据/输出结果压缩传输,使用snappy格式. hive-site.xml: set hive.exec.compress.output = true # ...

  8. 【Word】如何批量导出ppt中的备注

    [Word]如何批量导出ppt中的备注 文件 | 导出 | 创建讲义 | 备注在幻灯片旁 在word中删除左边两列,复制剩下的表格 | 粘贴-只保留文本

  9. 前端性能测试lighthouse的使用

    lighthouse的安装有两种方式: github地址:https://github.com/GoogleChrome/lighthouse 一.如果可以FQ的话可以从 chrome 扩展插件里直接 ...

  10. [笔记]windows cmd常用命令

    1.返回上一级目录  目前似乎没有直接的命令,参考  https://stackoverflow.com/questions/48189935/how-can-i-return-to-the-prev ...