Java에서 비동기 생산자 / 소스를 만드는 방법은 무엇입니까?

Yulin

메서드로 처리해야하는 작업 목록이 있는데, 프로세스에 시간이 오래 걸리므로 목록의 작업을 비동기 모드에서 하나씩 처리하고 결과를 비동기 스트림으로 반환하고 싶습니다. 따라서 다운 스트림 처리는 전체 작업 목록의 완료를 기다릴 필요가 없습니다.

AsyncStream<R> methodA(List<T> tasks){tasks.forEach(t -> {calculation that takes a long time})}

인터넷에서 간단히 검색 한 후 RxJava가 비동기 스트리밍 데이터를 처리 할 수 ​​있다는 것을 알았습니다. 그러나 소개에서는 비동기 데이터 스트림을 만드는 방법을 설명하는 것 같습니다. 그렇다면 Java에서 비동기 생산자 / 소스를 만드는 방법은 무엇입니까?

Michalk

Observable주어진 작업에 대한 계산이 완료되는 즉시 값을 내보내는 비동기식 만들 수 있습니다 . 이를 위해서는 flatMap운영자 가 필요 합니다. 간단한 예에서 이것은 다음과 같습니다.

static Observable<String> methodA(List<String> tasks) {
     return Observable.from(tasks)
            .flatMap(t -> Observable.just(t)
                    .map(t1 -> longRunningTask(t1))
                    .subscribeOn(Schedulers.io())
            );

}

static String longRunningTask(String arg) {
    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
        Thread.currentThread().interrupt();
    }
    return arg;
}

작업을 매핑 Observable하고 사용 subscribeOn하여 무언가를 구독 할 때 구독이 다른 스레드에서 발생하도록합니다. flatMap연산자 Observables는 한 번 에 모든 항목을 구독하고 준비되는 즉시 값을 내 보냅니다. 구독은 Scedulers.io과 다른 스레드에서 발생하므로 계산은 비동기 적 입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Angular에서 자동 생성 ID를 만드는 방법은 무엇입니까?

분류에서Dev

한 명의 생산자, 두 명의 소비자를 만드는 방법은 무엇입니까?

분류에서Dev

SSO 서비스 공급자를 만드는 방법은 무엇입니까?

분류에서Dev

기본 클래스에서 파생 할당 연산자를 호출하는 방법은 무엇입니까?

분류에서Dev

비동기 생성기에서 발생한 예외를 테스트하는 방법은 무엇입니까?

분류에서Dev

Java에서 생산자-소비자를위한 더 나은 관용구는 무엇입니까?

분류에서Dev

자바 스크립트 또는 노드에서 비 동기화하는 방법은 무엇입니까?

분류에서Dev

기본 클래스에서 생성 된 클래스에 @property를 만드는 방법은 무엇입니까?

분류에서Dev

Webflux 애플리케이션에서 Spring Cloud Stream 소비자를 만드는 방법은 무엇입니까?

분류에서Dev

자바 스크립트에서 비동기 함수를 피하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트에서 비동기를 피하는 방법은 무엇입니까?

분류에서Dev

요소와 div가 자바 스크립트에서 동일한 ID를 가질 때만 요소를 div에 드롭하는 방법은 무엇입니까?

분류에서Dev

HTML5에서 소문자 상표 / TM 기호를 만드는 방법은 무엇입니까?

분류에서Dev

Android에서 텍스트보기가있는 대화 상자를 만드는 방법은 무엇입니까?

분류에서Dev

원 위에 벡터 자산을 사용하여 선택기를 만드는 방법은 무엇입니까?

분류에서Dev

Google 스프레드 시트에서 소비자 물가 지수 (CPI)를 얻는 방법은 무엇입니까?

분류에서Dev

테이블 기반 사용자 양식에서 자동 생성 된 텍스트를 만드는 방법은 무엇입니까?

분류에서Dev

Java BigQuery API에서보기를 만드는 방법은 무엇입니까?

분류에서Dev

자바 스크립트에서 동적 탭 메뉴를 만드는 방법은 무엇입니까?

분류에서Dev

PyQt4에서 자동 완성 콤보 박스를 만드는 방법은 무엇입니까?

분류에서Dev

div 내에서 수직 자동 스크롤 이미지를 만드는 방법은 무엇입니까?

분류에서Dev

문자열 또는 클래스 경로 리소스에서 RegularFileProperty를 만드는 방법은 무엇입니까?

분류에서Dev

Julia에서 콜백을 사용하여 비동기 웹 쿼리를 만드는 방법은 무엇입니까?

분류에서Dev

읽기 전용 파일 시스템에서 새 사용자를 만드는 방법은 무엇입니까?

분류에서Dev

자식 분기를 만드는 방법은 무엇입니까?

분류에서Dev

비동기 CUDA 호출에서 발생하는 CUDA 오류를 확인하는 방법은 무엇입니까?

분류에서Dev

odoo에서 수동보기를 만드는 방법은 무엇입니까?

분류에서Dev

비 클래스 패키지에서 연산자를 오버로드하는 방법은 무엇입니까?

분류에서Dev

비 클래스 패키지에서 연산자를 오버로드하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    Angular에서 자동 생성 ID를 만드는 방법은 무엇입니까?

  2. 2

    한 명의 생산자, 두 명의 소비자를 만드는 방법은 무엇입니까?

  3. 3

    SSO 서비스 공급자를 만드는 방법은 무엇입니까?

  4. 4

    기본 클래스에서 파생 할당 연산자를 호출하는 방법은 무엇입니까?

  5. 5

    비동기 생성기에서 발생한 예외를 테스트하는 방법은 무엇입니까?

  6. 6

    Java에서 생산자-소비자를위한 더 나은 관용구는 무엇입니까?

  7. 7

    자바 스크립트 또는 노드에서 비 동기화하는 방법은 무엇입니까?

  8. 8

    기본 클래스에서 생성 된 클래스에 @property를 만드는 방법은 무엇입니까?

  9. 9

    Webflux 애플리케이션에서 Spring Cloud Stream 소비자를 만드는 방법은 무엇입니까?

  10. 10

    자바 스크립트에서 비동기 함수를 피하는 방법은 무엇입니까?

  11. 11

    자바 스크립트에서 비동기를 피하는 방법은 무엇입니까?

  12. 12

    요소와 div가 자바 스크립트에서 동일한 ID를 가질 때만 요소를 div에 드롭하는 방법은 무엇입니까?

  13. 13

    HTML5에서 소문자 상표 / TM 기호를 만드는 방법은 무엇입니까?

  14. 14

    Android에서 텍스트보기가있는 대화 상자를 만드는 방법은 무엇입니까?

  15. 15

    원 위에 벡터 자산을 사용하여 선택기를 만드는 방법은 무엇입니까?

  16. 16

    Google 스프레드 시트에서 소비자 물가 지수 (CPI)를 얻는 방법은 무엇입니까?

  17. 17

    테이블 기반 사용자 양식에서 자동 생성 된 텍스트를 만드는 방법은 무엇입니까?

  18. 18

    Java BigQuery API에서보기를 만드는 방법은 무엇입니까?

  19. 19

    자바 스크립트에서 동적 탭 메뉴를 만드는 방법은 무엇입니까?

  20. 20

    PyQt4에서 자동 완성 콤보 박스를 만드는 방법은 무엇입니까?

  21. 21

    div 내에서 수직 자동 스크롤 이미지를 만드는 방법은 무엇입니까?

  22. 22

    문자열 또는 클래스 경로 리소스에서 RegularFileProperty를 만드는 방법은 무엇입니까?

  23. 23

    Julia에서 콜백을 사용하여 비동기 웹 쿼리를 만드는 방법은 무엇입니까?

  24. 24

    읽기 전용 파일 시스템에서 새 사용자를 만드는 방법은 무엇입니까?

  25. 25

    자식 분기를 만드는 방법은 무엇입니까?

  26. 26

    비동기 CUDA 호출에서 발생하는 CUDA 오류를 확인하는 방법은 무엇입니까?

  27. 27

    odoo에서 수동보기를 만드는 방법은 무엇입니까?

  28. 28

    비 클래스 패키지에서 연산자를 오버로드하는 방법은 무엇입니까?

  29. 29

    비 클래스 패키지에서 연산자를 오버로드하는 방법은 무엇입니까?

뜨겁다태그

보관