>Java >java지도 시간 >Java에서 CompletableFuture를 사용하는 방법 및 예

Java에서 CompletableFuture를 사용하는 방법 및 예

WBOY
WBOY앞으로
2023-04-23 08:10:061295검색

Explanation

1 CompletableFuture 클래스는 Future 및 CompletionStage 인터페이스를 구현하는 JDK 8에 도입되었습니다.

supplyAsync, runAsync 및 thenApplyAsync와 같은 일련의 비동기 프로그래밍 메서드를 제공합니다.

2. 이 기능을 사용하면 두 명 이상이 작업을 수행하여 결과를 얻을 수 있습니다.

인스턴스

/**
 * @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);
  }
 
}

위 내용은 Java에서 CompletableFuture를 사용하는 방법 및 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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