CompletableFuture详解~anyOf
生活随笔
收集整理的這篇文章主要介紹了
CompletableFuture详解~anyOf
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
當幾個階段中的一個完成,創建一個完成的階段
下面的例子演示了當任意一個CompletableFuture完成后, 創建一個完成的CompletableFuture.
待處理的階段首先創建, 每個階段都是轉換一個字符串為大寫。因為本例中這些階段都是同步地執行(thenApply), 從anyOf中創建的CompletableFuture會立即完成,這樣所有的階段都已完成,我們使用whenComplete(BiConsumer<? super Object, ? super Throwable> action)處理完成的結果。
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); }總結
以上是生活随笔為你收集整理的CompletableFuture详解~anyOf的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用自定义web-font实现数据防采集
- 下一篇: 小甲鱼 OllyDbg 教程系列 (十七