2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

thenAccept

작성: sangseek | 게시 날짜: 2026/06/14 | 조회수: 2
[ 편집불가 ]

thenAccept는 주로 Java의 CompletableFuture(또는 CompletionStage)에서 쓰이는 메서드로, 이전 비동기 단계가 정상적으로 완료되었을 때 그 결과를 소비(부수 효과 수행)하는 콜백을 등록하는 역할을 합니다. 핵심 요약 - 시그니처(대표적): CompletableFuture thenAccept(Consumer action) - 동작: 이전 단계가 정상 완료되면 그 결과값을 action.accept(result)로 전달해 실행. 반환되는 CompletableFuture는 action이 끝나면 완료(값은 Void). - 반환값이 없으므로(CompletableFuture) 값을 변환하지 않고 부수효과(로깅, UI 갱신, DB 저장 등)를 수행할 때 사용. - 예외 처리: 이전 단계가 예외로 완료되면 thenAccept는 호출되지 않음. action 내에서 예외가 발생하면 반환되는 Future는 예외로 완료됨. - 비동기/동기 차이: thenAccept는 기본적으로 이전 단계가 완료된 쓰레드에서 실행됨. thenAcceptAsync(또는 thenAcceptAsync(action, executor))를 쓰면 다른 쓰레드(기본 ForkJoinPool.commonPool 또는 지정한 Executor)에서 실행. 간단한 예 예: CompletableFuture.supplyAsync(() -> compute()) .thenAccept(result -> System.out.println("결과: " + result)); 사용처 예시 - 결과를 변환할 필요 없이 부수 효과만 필요할 때(로그 출력, 캐시 갱신, UI 업데이트 등). - 체이닝에서 최종 단계로 결과를 소비하고 싶을 때. 주의사항 - 긴 작업(블로킹 I/O 등)을 thenAccept 안에 직접 넣으면 그 쓰레드를 점유하므로, 그런 경우 thenAcceptAsync와 적절한 Executor 사용 권장. - 값을 변환해야 하면 thenApply/thenCompose를 사용하고, 예외 처리가 필요하면 exceptionally/handle/whenComplete 등을 함께 고려. 위 내용이 thenAccept의 의미와 사용법, 주의점을 간단히 정리한 것입니다.
내용이 부정하다면 싫어요를 누르세요.