>  기사  >  Java  >  Java 9에서 CompletableFuture와 Future의 차이점은 무엇입니까?

Java 9에서 CompletableFuture와 Future의 차이점은 무엇입니까?

WBOY
WBOY앞으로
2023-08-18 16:17:12995검색

CompletableFuture8742468051c85b06f0a0af9e3e506b5c 클래스는 Java에서 Future8742468051c85b06f0a0af9e3e506b5c 인터페이스를 구현합니다. CompletableFuture 는 명시적으로 완료된 Future로 사용할 수 있습니다. Future 인터페이스는 많은 기능을 제공하지 않습니다. 비동기 계산 결과를 얻으려면 get() 메서드를 사용해야 하므로 이 메서드는 차단되므로 non에서 여러 종속 작업을 실행할 수 없습니다. -blocking 방식 및 CompletableFuture 클래스는 체인에서 여러 종속 작업을 실행하는 기능을 제공할 수 있습니다. 이러한 작업은 비동기 방식으로 실행되므로 결과가 나올 때 다음 작업을 트리거하는 작업 체인을 만들 수 있습니다. 현재 작업을 사용할 수 있습니다.

Grammar

<strong>public class CompletableFuture<T> extends Object implements Future<T>, CompletionStage<T></strong>

Example

을 중국어로 번역하면 다음과 같습니다.

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;
   }
}

Output

<strong>CompletableFutureTest End....
11</strong>

위 내용은 Java 9에서 CompletableFuture와 Future의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제