2017-12-20 37 views
0

CompletionStage을 반환하는 메소드가 있습니다. 나는 그 반응에 관심이 없다. 메서드를 비동기식으로 실행하려면 어떻게해야합니까? 완성 단계는 단순히 메서드를 호출하여 비 블로킹을 실행합니까?Java Fire 및 완료 완료 스테이지/완료 완료

답변

0

정적 메서드 supplyAsync을 호출 할 수 있습니다.

public CompletionStage<String> method() { 
    return CompletableFuture.supplyAsync(() -> { 
     // do your work and return the same type inside <> 
     return "Hello World"; 
    }); 
} 

은 그냥 메소드를 호출 발사 :

이 방법을 참조하십시오.

0

방법은 지정/구현 방법에 따라 다르지만 일반적으로 비 차단입니다.

것은 완료된 CompletableFuture을 반환하는 메소드를 구현하기 쉽고 따라서 비동기 적이 지 않다는 것이 있습니다.

그러나 중요한 것은 반환 된 CompletionStage을 사용하여 수행 한 작업이 메서드가 비동기식인지 여부에 영향을 미치지 않는다는 것입니다. 이는 메소드 스펙에만 의존합니다.

일반적으로 메서드가 CompletionStage을 반환하면 이는 비동기 작업을 수행하기 때문입니다. 그러나 래퍼 (예 : @Async과 같은 프록시 개체)가 비동기 작업을 수행 할 수도 있습니다. 이 경우 래퍼를 통해 비동기 실행을 수행해야합니다.