开发过程中使用FutureTask线程优化并获取执行结果同轴电缆图片•2022-12-17•随笔•阅读41开发过程中使用FutureTask线程优化并获取执行结果 FutureTask 此线程有三种状态: 未启动已启动已完成(正常结束、取消而结束、异常结束) 当主线程调用FutureTask对象的get方法时: 未启动 - 主线程阻塞已启动 - 主线程阻塞已完成 - 立即返回结果或抛出异常 原始串行执行 List list = new ArrayList<>(); for (String entryId : entryIdList) { Object dataDetails = parserDataService.getDataByEntryId(dataType, entryId); list.add(dataDetails); } 需要等方法调用完后执行下一个 异步去执行方法 List list = new ArrayList<>(); List> futureTaskList = new ArrayList<>(entryIdList.size()); for (String entryId : entryIdList) { FutureTask futureTask = new FutureTask<>(() -> parserDataService.getDataByEntryId(dataType, entryId)); // 去拿线程池跑线程 poolExecutor.execute(futureTask); futureTaskList.add(futureTask); } // 取结果 futureTaskList.forEach( objectFutureTask -> { try { list.add(objectFutureTask.get()); } catch (InterruptedException e) { log.error("{}线程中断", Thread.currentThread().getName(), e); } catch (ExecutionException e) { log.error("{}线程执行异常", Thread.currentThread().getName(), e); } }); FutureTask详解 FutureTask详解欢迎分享,转载请注明来源:内存溢出原文地址:https://www.54852.com/zaji/5682809.html线程执行主线启动阻塞赞 (0)打赏 微信扫一扫 支付宝扫一扫 同轴电缆图片一级用户组00 生成海报 Log4j的使用上一篇 2022-12-17用exe4j将Java的可执行jar包转为exe后或过程中遇到的问题 下一篇2022-12-17 发表评论 请登录后评论... 登录后才能评论 提交评论列表(0条)
评论列表(0条)