Heim  >  Artikel  >  Java  >  Methoden und Beispiele für die Verwendung von CompletableFuture in Java

Methoden und Beispiele für die Verwendung von CompletableFuture in Java

WBOY
WBOYnach vorne
2023-04-23 08:10:061220Durchsuche

Erläuterung

1. Die CompletableFuture-Klasse wurde in JDK 8 eingeführt, die die Schnittstellen Future und CompletionStage implementiert.

Stellt eine Reihe von Methoden für die asynchrone Programmierung bereit, z. B. SupplyAsync, RunAsync und ThenApplyAsync.

2. Die Funktion ermöglicht zwei oder mehr Operationen, um Ergebnisse zu erzielen.

Instanzen

/**
 * @author mghio
 * @since 2021-08-01
 */
public class CompletableFutureDemo {
 
  public static CompletableFuture<String> doOneThing() {
    return CompletableFuture.supplyAsync(() -> {
      try {
        Thread.sleep(2000);
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
      return "doOneThing";
    });
  }
 
  public static CompletableFuture<String> doOtherThing(String parameter) {
    return CompletableFuture.supplyAsync(() -> {
      try {
        Thread.sleep(2000);
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
      return parameter + " " + "doOtherThing";
    });
  }
 
  public static void main(String[] args) throws ExecutionException, InterruptedException {
    StopWatch stopWatch = new StopWatch("CompletableFutureDemo");
    stopWatch.start();
 
    // 异步执行版本
    testCompletableFuture();
 
    stopWatch.stop();
    System.out.println(stopWatch);
  }
 
  private static void testCompletableFuture() throws InterruptedException, ExecutionException {
    // 先执行 doOneThing 任务,后执行 doOtherThing 任务
    CompletableFuture<String> resultFuture = doOneThing().thenCompose(CompletableFutureDemo::doOtherThing);
 
    // 获取任务结果
    String doOneThingResult = resultFuture.get();
 
    // 获取执行结果
    System.out.println("DoOneThing and DoOtherThing execute finished. result = " + doOneThingResult);
  }
 
}

Das obige ist der detaillierte Inhalt vonMethoden und Beispiele für die Verwendung von CompletableFuture in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen