CompletionStage
을 반환하는 메소드가 있습니다. 나는 그 반응에 관심이 없다. 메서드를 비동기식으로 실행하려면 어떻게해야합니까? 완성 단계는 단순히 메서드를 호출하여 비 블로킹을 실행합니까?Java Fire 및 완료 완료 스테이지/완료 완료
0
A
답변
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
과 같은 프록시 개체)가 비동기 작업을 수행 할 수도 있습니다. 이 경우 래퍼를 통해 비동기 실행을 수행해야합니다.