개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.22 09:41

parallelFuture::done에 관해 질문합니다

목록
  • C++장인 10일 전 2025.05.22 09:41
  • 13
    1
안녕하세요 선생님. 저는 parallelFuture::done에 관해 질문을 드리겠습니다.
parallelFuture::done은 어떤 의미를 가지는 것일까요?
다음과 같은 코드를 작성했는데요,
java

CompletableFuture future = CompletableFuture.supplyAsync(() -> {

    // 코드가 실행되는 부분

});

future.thenAccept(System.out::println);

future.done();


이 코드의 future.done();은 어떤 역할을 하는 것일까요?
그리고 future.done();이 호출된 후에 future.thenAccept()은 호출이 가능한가요?
혹시 예제와 함께 설명해주실 수 있을까요?

    댓글목록

    profile_image
    나우호스팅  10일 전



    parallelFuture::done은 CompletableFuture의 상태를 확인하는 메서드입니다. 이 메서드는 CompletableFuture가 완료되었는지 여부를 반환합니다.

    만약 CompletableFuture가 완료되지 않았다면, future.done()은 false를 반환하고, 완료되었다면 true를 반환합니다.

    다음과 같은 코드를 살펴보겠습니다.

    #hostingforum.kr
    java
    
    CompletableFuture future = CompletableFuture.supplyAsync(() -> {
    
        // 코드가 실행되는 부분
    
    });
    
    
    
    future.thenAccept(System.out::println);
    
    future.done(); // false를 반환합니다.
    
    


    future.done()은 false를 반환합니다. 이유는 CompletableFuture가 아직 완료되지 않았기 때문입니다.

    만약 CompletableFuture가 완료되었다면, future.done()은 true를 반환합니다.

    #hostingforum.kr
    java
    
    CompletableFuture future = CompletableFuture.supplyAsync(() -> {
    
        // 코드가 실행되는 부분
    
    }).join(); // CompletableFuture가 완료되도록 강제합니다.
    
    
    
    future.thenAccept(System.out::println);
    
    future.done(); // true를 반환합니다.
    
    


    future.done()은 true를 반환합니다. 이유는 CompletableFuture가 이미 완료되었기 때문입니다.

    이제, future.done()이 호출된 후에 future.thenAccept()이 호출이 가능한지 살펴보겠습니다.

    #hostingforum.kr
    java
    
    CompletableFuture future = CompletableFuture.supplyAsync(() -> {
    
        // 코드가 실행되는 부분
    
    });
    
    
    
    future.thenAccept(System.out::println);
    
    future.done(); // false를 반환합니다.
    
    future.thenAccept(System.out::println); // 이 코드는 호출이 가능합니다.
    
    


    future.done()이 호출된 후에 future.thenAccept()이 호출이 가능합니다. 이유는 future.done()이 CompletableFuture의 상태를 확인하는 메서드이기 때문입니다.

    만약 CompletableFuture가 이미 완료되었다면, future.done()을 호출할 필요가 없습니다.

    #hostingforum.kr
    java
    
    CompletableFuture future = CompletableFuture.supplyAsync(() -> {
    
        // 코드가 실행되는 부분
    
    }).join(); // CompletableFuture가 완료되도록 강제합니다.
    
    
    
    future.thenAccept(System.out::println);
    
    future.done(); // 이미 완료되었기 때문에 호출할 필요가 없습니다.
    
    future.thenAccept(System.out::println); // 이 코드는 호출이 가능합니다.
    
    


    future.done()을 호출할 필요가 없습니다. 이유는 CompletableFuture가 이미 완료되었기 때문입니다.

    결론적으로, future.done()은 CompletableFuture의 상태를 확인하는 메서드입니다. 이 메서드는 CompletableFuture가 완료되었는지 여부를 반환합니다. future.done()이 호출된 후에 future.thenAccept()이 호출이 가능합니다.

    2025-05-22 09:42

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 24,225건 / 2 페이지

검색

게시물 검색