CompletableFuture详解~anyOf
生活随笔
收集整理的這篇文章主要介紹了
CompletableFuture详解~anyOf
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
當(dāng)幾個(gè)階段中的一個(gè)完成,創(chuàng)建一個(gè)完成的階段
下面的例子演示了當(dāng)任意一個(gè)CompletableFuture完成后, 創(chuàng)建一個(gè)完成的CompletableFuture.
待處理的階段首先創(chuàng)建, 每個(gè)階段都是轉(zhuǎn)換一個(gè)字符串為大寫。因?yàn)楸纠羞@些階段都是同步地執(zhí)行(thenApply), 從anyOf中創(chuàng)建的CompletableFuture會(huì)立即完成,這樣所有的階段都已完成,我們使用whenComplete(BiConsumer<? super Object, ? super Throwable> action)處理完成的結(jié)果。
static void anyOfExample() {StringBuilder result = new StringBuilder();List messages = Arrays.asList("a", "b", "c");List<CompletableFuture> futures = messages.stream().map(msg -> CompletableFuture.completedFuture(msg).thenApply(s -> delayedUpperCase(s))).collect(Collectors.toList());CompletableFuture.anyOf(futures.toArray(new CompletableFuture[futures.size()])).whenComplete((res, th) -> {if(th == null) {assertTrue(isUpperCase((String) res));result.append(res);}});assertTrue("Result was empty", result.length() > 0); }總結(jié)
以上是生活随笔為你收集整理的CompletableFuture详解~anyOf的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用自定义web-font实现数据防采集
- 下一篇: 菜鸟教程 之 HTML DOM 和 浏览