Java 教程

Java 控制語句

面向物件程式設計

Java 內建類

Java 檔案處理

Java 錯誤和異常

Java 多執行緒

Java 同步

Java 網路

Java 集合

Java 介面

Java 資料結構

Java 集合演算法

高階 Java

Java 雜項

Java API 和框架

Java 類參考

Java 有用資源

Java - CompletableFuture API 增強



CompletableFuture 類是在 Java 8 中引入的,用於表示可以顯式設定其值和狀態的 Future。它可以用作 java.util.concurrent.CompletionStage。它支援依賴函式和操作,這些函式和操作在 future 完成時觸發。在 Java 9 中,CompletableFuture API 進行了進一步增強。以下是對 API 做出的相關更改。

  • 支援延遲和超時。
  • 改進對子類的支援。
  • 添加了新的工廠方法。

支援延遲和超時

public CompletableFuture<T> completeOnTimeout(T value, long timeout, TimeUnit unit)

如果在給定的超時時間之前未完成,則此方法使用給定的值完成此 CompletableFuture。

public CompletableFuture<T> orTimeout(long timeout, TimeUnit unit)

如果在給定的超時時間之前未完成,則此方法使用 TimeoutException 異常完成此 CompletableFuture。

改進對子類的支援

public Executor defaultExecutor()

它返回用於未指定執行器的非同步方法的預設執行器。此方法可以在子類中被重寫以返回一個執行器,以提供至少一個獨立執行緒。

public <U> CompletableFuture<U> newIncompleteFuture()

返回一個新的不完整的 CompletableFuture,其型別將由 CompletionStage 方法返回。CompletableFuture 類的子類應重寫此方法以返回與此 CompletableFuture 相同類的例項。預設實現返回 CompletableFuture 類的例項。

新的工廠方法

public static <U> CompletableFuture<U> completedFuture(U value)

此工廠方法返回一個新的 CompletableFuture,該 CompletableFuture 已使用給定值完成。

public static <U> CompletionStage<U> completedStage(U value)

此工廠方法返回一個新的 CompletionStage,該 CompletionStage 已使用給定值完成,並且僅支援介面 CompletionStage 中存在的方法。

public static <U> CompletionStage<U> failedStage(Throwable ex)

此工廠方法返回一個新的 CompletionStage,該 CompletionStage 已使用給定的異常異常完成,並且僅支援介面 CompletionStage 中存在的方法。

廣告