JDK8-CompletableFuture使用
Opened this issue · 0 comments
cccvip commented
CompletableFuture
基本使用
-
supplyAsync
异步线程处理
-
thenCompose
等到线程处理
CompletableFuture<String> completableFuture = CompletableFuture.supplyAsync(() -> { return "A"; }).thenCompose(A -> CompletableFuture.supplyAsync(() -> { return "B"; })); try { System.out.println(completableFuture.get()); } catch (InterruptedException e) { e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); }
-
thenCombine
线程合并处理
CompletableFuture<String> completableFuture = CompletableFuture.supplyAsync(() -> { return "A"; }).thenCombine(CompletableFuture.supplyAsync(() -> { return "B"; }), (a, b) -> { return a + "====" + b; }); try { System.out.println(completableFuture.get()); } catch (InterruptedException e) { e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); }
-
applyToEither
或者上面或者下面
CompletableFuture<String> bus = CompletableFuture.supplyAsync(() -> { ThreadTool.printThread("700路公交正在赶来"); ThreadTool.sleep(100); return "700路到了"; }).applyToEither(CompletableFuture.supplyAsync(() -> { ThreadTool.printThread("800路公交正在赶来"); ThreadTool.sleep(500); return "800路到了"; }), firstbus -> firstbus);
-
自定义线程池使用
每一个方法都会提供重载的函数,多一个线程池