씨앗뿌리는 개발자의 개발노트
Published 2023. 4. 25. 17:18
Java Completable Future 사용법 java

CompletableFuture 클래스는 Java 8에서 추가된 비동기 프로그래밍에 유용한 클래스입니다. CompletableFuture는 Future 인터페이스의 확장으로, 비동기식 계산을 지원하며, 결과를 반환하기 전에 블록하지 않는 것이 가능합니다. 또한 CompletableFuture는 비동기 작업을 체이닝하여 연결할 수 있으므로 매우 유용합니다.

CompletableFuture를 사용하여 비동기식으로 실행하려는 작업을 선언합니다. 그런 다음 CompletableFuture의 thenApply() 또는 thenAccept() 메서드를 사용하여 작업이 완료되면 결과를 처리합니다. 또한 thenCompose() 메서드를 사용하여 두 개의 CompletableFuture를 체인으로 연결하고 결과를 결합할 수 있습니다.

아래는 CompletableFuture를 사용하는 예제 코드입니다.

CompletableFuture<String> completableFuture = CompletableFuture.supplyAsync(() -> {
    // 비동기 작업
    return "result";
});

// 작업 완료 후 결과를 출력
completableFuture.thenAccept(result -> System.out.println(result));

// 작업 완료 후 결과를 가공하여 반환
CompletableFuture<Integer> anotherCompletableFuture = completableFuture.thenApply(result -> {
    // 결과 처리
    return result.length();
});

// 두 개의 CompletableFuture를 체인으로 연결하여 결과 결합
CompletableFuture<Integer> combinedCompletableFuture = completableFuture
    .thenCompose(result -> CompletableFuture.supplyAsync(() -> {
        // 또 다른 비동기 작업
        return result.length();
    }));

supplyAsync() 메서드는 지정된 함수를 비동기식으로 실행하고 CompletableFuture를 반환합니다. thenAccept() 메서드는 작업이 완료된 후 결과를 처리합니다. thenApply() 메서드는 작업이 완료된 후 결과를 가공하여 반환합니다. thenCompose() 메서드는 두 개의 CompletableFuture를 체인으로 연결하고 결과를 결합합니다.

CompletableFuture는 블록하지 않는 비동기 프로그래밍을 가능하게 하고, 작업을 체이닝하여 연결할 수 있습니다. 또한 CompletableFuture를 사용하여 비동기식으로 실행하는 작업을 간단하게 작성할 수 있습니다.

profile

씨앗뿌리는 개발자의 개발노트

@씨앗뿌리는 개발자

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!