자바 비동기 예제

나는 내 작은 라이브러리에 대한 몇 가지 의견과 Java에서이 와 같은 비동기 메서드 호출을하는 주제에 대해 원합니다. 그것은 안전? 이미 묵시적 인 방법이 있습니까? 자바 스크립트 약속의 자바 버전은 Completable미래라고합니다. 다음은 Function 인스턴스를 통해 계산 결과를 처리하는 수정된 예제입니다. 유일하게 눈에 띄는 차이점은 다음ApplyAsync 메서드입니다. 그러나 후드 에서 함수의 응용 프로그램은 ForkJoinTask 인스턴스로 래핑됩니다 (포크 / 조인 프레임 워크에 대한 자세한 내용은 “Java의 포크 / 조인 프레임 워크 가이드”를 참조하십시오). 이를 통해 계산을 더욱 병렬화하고 시스템 리소스를 보다 효율적으로 사용할 수 있습니다. Java에서는 인터페이스를 사용하여 콜백을 구현할 수 있습니다. 구현에 대한 일반적인 절차는 아래에 있습니다. 나는 최근에 Go의 goroutines를 보고 있었고 Java에서 비슷한 것을 가지는 것이 좋을 것이라고 생각했습니다. 메서드 호출을 병렬화하는 일반적인 방법을 검색한 한 GitHub 사용자 정보를 쿼리하고 GitHubAPI를 통해 데이터를 검색하는 조회 서비스를 빌드합니다. 서비스 크기 조정에 대한 한 가지 방법은 백그라운드에서 값비싼 작업을 실행하고 Java의 CompletableFuture 인터페이스를 사용하여 결과를 기다리는 것입니다. 자바의 컴플테이블미래는 일반 미래의 진화입니다.

여러 비동기 작업을 단일 비동기 계산으로 병합하는 파이프라인을 쉽게 만들 수 있습니다. 콜백 함수는 인수로 다른 함수로 전달 되는 함수이며 일종의 이벤트 후에 실행 될 것으로 예상 됩니다. 콜백의 목적은 다른 클래스의 일부 작업이 완료되면 클래스 동기화 / 비동기를 알리는 것입니다. 이 기능은 비동기 작업으로 작업할 때 매우 유용합니다. 단추를 클릭하거나 인터넷에서 데이터를 가져온 후 일부 작업을 수행하거나 콘텐츠를 표시하는 것과 같은 몇 가지 일상적인 작업을 수행한다고 가정합니다. 이것은 또한 이벤트 처리에 사용 됩니다., 우리는 버튼 콜백 기능을 통해 클릭 하는 경우 알림을 받을. 계산을 스핀 오프하려면 “Java의 스레드 풀 소개”에 설명된 실행기 API를 사용하지만 CompletableFuture를 만들고 완료하는 이 방법은 원시를 포함한 모든 동시성 메커니즘 또는 API와 함께 사용할 수 있습니다. 스레드. Java 9에서 CompletableFuture API는 다음과 같은 변경 사항으로 더욱 향상되었습니다: 실행 가능 및 공급자 모두 새로운 Java 8 기능 덕분에 람다 식으로 인스턴스를 전달할 수 있는 기능 인터페이스입니다.