ListenableFuture包装

本文介绍如何使用Future的异步处理。

使用JdkFutureAdapters包装

final List listenableFutures = futures.stream().map(JdkFutureAdapters::listenInPoolThread).collect(Collectors.toList()); Futures.successfulAsList(listenableFutures,new FutureCallback(){ @Override public void onSuccess(@Nullable Object o) { } @Override public void onFailure(Throwable throwable) { } } );}

JAVA8的whenComplete

CompletableFuture.supplyAsync(() -> modelConvertHandle(mes), MODEL_REBUILD_EXE) .whenComplete((r, e) -> { if (e != null) { LOG.error(“manual sync is failed,Cost Time:{} ms”, System.currentTimeMillis() – current, e); } else { LOG.info(“manual sync is success,response is:{},Cost Time:{} ms”, r, System.currentTimeMillis() – current); } manualSyncFinish(); });

在whenCompleteAsync除非特别指定,都是默认使用的forkJoin线程池。

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
上一篇 2022年7月10日 18:29
下一篇 2022年7月10日 18:29

相关推荐

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息