首頁 > Java > java教程 > 主體

Java 9中CompletableFuture和Future之間的差異是什麼?

WBOY
發布: 2023-08-18 16:17:12
轉載
974 人瀏覽過

CompletableFuture 類別在Java中實作了 Future #介面。 CompletableFuture 可以被用來作為已經明確完成的Future。 Future 介面並沒有提供很多功能,我們需要使用get() 方法來取得非同步計算的結果,該方法會被阻塞,因此沒有辦法以非阻塞的方式運行多個依賴任務,而CompletableFuture 類別可以提供鍊式運行多個依賴任務的功能,這些任務以異步的方式運行,因此我們可以創建一個任務鏈,在目前任務的結果可用時觸發下一個任務。

語法

<strong>public class CompletableFuture<T> extends Object implements Future<T>, CompletionStage<T></strong>
登入後複製

Example

翻譯成中文為:

範例

import java.util.function.Supplier;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;

public class CompletableFutureTest {
   public static void main(String args[]) throws ExecutionException, InterruptedException {
      Calculator calc = new Calculator(4, 7);
      <strong>CompletableFuture<Integer></strong> future = CompletableFuture.<strong>supplyAsync</strong>(calc);
      future.<strong>thenAccept</strong>(result -> {
         System.out.println(result);
      });
      System.out.println("CompletableFutureTest End.... ");
      Thread.sleep(10000);
   }
}

<strong>// Calculator class</strong>
class Calculator implements <strong>Supplier<Integer></strong> {
   private int x, y;
   public Calculator(int x, int y) {
      this.x = x;
      this.y = y;
   }
   <strong>@Override</strong>
   public Integer get() {
      try {
         Thread.sleep(3000);
      } catch(InterruptedException e) {
         e.printStackTrace();
      }
      return x + y;
   }
}
登入後複製

輸出

<strong>CompletableFutureTest End....
11</strong>
登入後複製

以上是Java 9中CompletableFuture和Future之間的差異是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!