completablefuture 예제

API에서 몇 가지 예를 제공하기 위해 CompletableFuture를 사용하면 메서드 호출이있는 또 다른 예가 있으며 지금까지 본 간단한 예제보다 약간 더 복잡합니다. 예제 첫 번째 메서드에서 사용자 목록을 가져오고 두 번째 메서드에서 사용자 이름은 대문자로 변경됩니다. 수정된 목록이 반환됩니다. 다음Compose()를 사용하여 컴포지션을 사용하여 이전 두 예제에서 수행한 것과 동일한 계산을 수행할 수 있습니다. 이 메서드는 첫 번째 단계(대문자 변환적용)가 완료될 때까지 기다립니다. 그 결과는 지정된 함수에 전달되며, CompletableFuture를 반환하며, 그 결과는 반환된 CompletableFuture의 결과입니다. 이 경우 함수는 대문자 문자열(상위)을 가져와 원래 문자열을 소문자로 변환한 다음 위쪽에 더하는 CompletableFuture를 반환합니다. 이전 섹션에서는 다음 Apply() 및 다음Compose()에 대한 예제를 보여 주어 보았습니다. 두 API 모두 서로 다른 CompletableFuture 호출을 체인하는 데 도움이되지만 이러한 2 함수의 사용은 다릅니다.

이러한 예제를 통해 작업하면 이 API를 더 잘 이해할 수 있습니다. GitHub에서 이러한 예제의 전체 코드를 찾을 수 있습니다. 이 게시물은 자바 8의 CompletionStage API와 특히 표준 자바 라이브러리 CompletableFuture에서 구현을 다시 검토합니다. API는 각 예제가 하나 또는 두 개의 특정 동작에 중점을 둔 다양한 동작을 보여 주는 예제에 의해 설명됩니다. 다음 두 예제에서는 CompletableFuture를 만드는 방법을 보여 줍니다.여러 CompletableFutures의 모든 완료 될 때 완료 하는 경우 동기 및 비동기 방식으로 각각. 시나리오는 이전 예제와 동일합니다. 이렇게 하면 차단되지 않는 방식으로 시스템을 구축할 수 있습니다. orTimeout이 하는 일은 우리가 지정한 시간 시간 내에 완료되지 않는 경우 CompletableFuture를 완료하는 것입니다. 컴플테이블퓨처는 또한 다음 정책으로 미래를 구현합니다. 구문 블록에서 예외를 catch하는 대신 CompletableFuture 클래스를 사용하면 특수 핸들 메서드에서 예외를 처리할 수 있습니다. 이 메서드는 계산 결과(성공적으로 완료된 경우)와 throw된 예외(일부 계산 단계가 정상적으로 완료되지 않은 경우)의 두 가지 매개 변수를 받습니다.

. 핀을 해킹하고 안전 상자 번호를 파악하는 동시 스레드의 분할 지점은 다음에 수행됩니다. 메서드는 다음Compose 우리가 실행 하려는 나타냅니다., 문을 열고 후, 다른 CompletableFuture 및 완료 결과 가져옵니다 (아래 상자를 참조, 그 다음의 차이는 다음구성 및 적용). 이 두 병렬 스레드의 실행을 이전 스레드의 연속으로 코딩하는 방법을 살펴 보겠습니다. 메서드 때Complete 새 것을 계산 하는 대신 트리거 단계의 결과 유지 합니다. . 여러 선물을 병렬로 실행해야 하는 경우 일반적으로 모든 퓨처가 실행될 때까지 기다렸다가 결합된 결과를 처리하려고 합니다. 미래 인터페이스를 구현하는 것 외에도 CompletableFuture는 CompletionStage 인터페이스를 구현합니다. 그런 다음Compose()- 결과의 유형이 이전 단계의 형식과 동일한 새 완료 스테이지를 반환합니다.

이것은 논쟁의 여지가있는 주제입니다 : CompletableFuture 구현은 미래보다 읽기 쉽습니까? 즉, 언제나처럼, 당신이 물어 사람에 따라 달라집니다. 어떤 사람들은 명령적 프로그래밍에 더 편안하게 느끼고 선물을 선호합니다. 어떤 사람들은 유창한 API 애호가이며 Completable Futures를 위해 갈 것입니다. 컴플테이블퓨어 체인에 가능한 모든 트릭을 적용하여 길고 압축된 한 줄짜리 라이너로 만들지 마십시오. 당신이 코드의 그 웅장한 조각으로 돌아와야 할 유일한 사람이 아니라는 것을 잊지 마십시오. 따라서 이 메서드는 CompletableFuture 호출의 결과를 변환하려는 경우에 유용합니다: CompletionStages를 사용하면 다른 CompletionStage가 완료될 때 각 스테이지가 실행되는 CompletionStage 의 단계 체인으로 단일 CompletableFuture를 만들 수 있습니다.

Geplaatst in Geen categorie door admin. Zet de link bij je favorieten link.