RxJava로 텍스트 줄을 동시에 처리하는 방법

jstnchng

RxJava로 텍스트 줄을 동시에 처리 할 수있는 방법이 궁금합니다. 지금 내가 가진 것은 항목 집합에서 관찰 가능한 항목과 각 항목에서 onNext 호출의 항목을 처리하는 구독자입니다. 구독자는이 코드 줄로 Observable을 구독합니다.

obs.observeOn(Schedulers.io()).subscribe(sub);

하지만 실행하면 순차 버전만큼 느리게 실행되며 순차적으로 처리하는 것 같습니다. 이것을 어떻게 동시에 만들 수 있습니까?

아담 S

귀하의 observeOn(Schedulers.io())호출은 모든 방출이 해당 스레드에서 관찰된다는 것을 의미합니다. 당신은 그것들을 그들 자신의 스레드 로 가져오고 싶습니다 .

여기 flatMap에서는 소스에서 방출 된 각 항목에 대해 새로운 Observable을 생성하는 데 사용 합니다. 매핑 기능 내에서 defer구독까지 처리 작업을 해야합니다 . 그렇지 않으면 처리가 완료되는 동안 전체 체인이 차단됩니다. 또한을 통해 새 스레드에서 구독이 발생하는지 확인해야합니다 subscribeOn.

Random r = new Random();
Observable.from(new String[]{"First", "Second", "Third", "Fourth", "Fifth"})
    .flatMap(new Func1<String, Observable<String>>() {
        public Observable<String> call(final String s) {
            return Observable.defer(new Func0<Observable<String>>() {
                public Observable<String> call() {
                    Thread.sleep(r.nextInt(1000));
                    return Observable.just(s);
                }
            }).subscribeOn(Schedulers.newThread());
        }
    })
    .subscribe(new Action1<String>() {
        @Override
        public void call(String s) {
            System.out.println("Observed " + s + " on thread " + Thread.currentThread().getId());
        }
    });

이것은 나에게 다음과 같은 출력을 제공합니다 (순서가 다르고 다른 스레드에서-즉, 병렬로 처리됨).

Observed Fourth on thread 17
Observed Second on thread 15
Observed Fifth on thread 18
Observed First on thread 14
Observed Third on thread 16

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

docxtemplater로 텍스트 뒤에 줄 바꿈을 넣는 방법

분류에서Dev

명령 출력을 텍스트로 처리하는 방법

분류에서Dev

공백을 동시에 밑줄로 바꾸는 방법 (입력 필드에 텍스트를 입력 할 때)?

분류에서Dev

공백을 동시에 밑줄로 바꾸는 방법 (입력 필드에 텍스트를 입력 할 때)?

분류에서Dev

여러 줄 텍스트 상자에서 단일 텍스트 상자로 줄을 가져 오는 방법?

분류에서Dev

두 텍스트 줄 사이에 세로 구분선을 그리는 방법 android?

분류에서Dev

마이크로 서비스 아키텍처에서 트랜잭션을 관리하는 방법

분류에서Dev

중국어 텍스트에서 이미지 처리로 imageMagick을 사용하는 방법

분류에서Dev

for 루프로 읽는 동안 텍스트 파일에 가상 추가 줄을 추가하는 방법

분류에서Dev

한 줄의 코드로 Swift 2.0에서 텍스트 파일을 읽는 방법

분류에서Dev

.net에서 텍스트 파일을 순차적으로 처리하는 동안 다른 열 값을 확인하는 방법

분류에서Dev

Android Studio 프로젝트에 텍스처 파일을 추가하는 방법

분류에서Dev

Specflow에서 두 줄로 된 성공 텍스트 메시지의 유효성을 검사하는 방법

분류에서Dev

명령 줄의 출력을 스트림으로 처리하는 방법

분류에서Dev

텍스트 바로 아래에 표시되는 대신 메뉴 표시 줄의 테두리에서 드롭 다운을 시작하는 방법

분류에서Dev

RxJava로 Retrofit 2에서 네트워크 오류를 처리하는 방법

분류에서Dev

FOR 루프에서 텍스트 파일의 처리 줄에서 특정 단어 뒤의 모든 줄을 무시하는 방법은 무엇입니까?

분류에서Dev

bash에서 일부 텍스트를 포함하는 줄 바로 앞에 텍스트 문서에 줄을 삽입하는 방법은 무엇입니까?

분류에서Dev

여러 줄 텍스트 상자에서 다음 텍스트 상자로 이동하는 방법

분류에서Dev

배열에서 텍스트 상자 / 라벨 그룹을 처리하는 방법

분류에서Dev

SQLCMD의 파일에 텍스트 줄을 추가하는 방법

분류에서Dev

Ruby에서 일부 텍스트 줄을 확인하는 방법

분류에서Dev

텍스트 파일을 추가하는 동안 포인터를 한 줄 위로 이동하는 방법

분류에서Dev

텍스트 편집기에서 동시에 여러 줄에 탭 공간을 추가하는 방법

분류에서Dev

텍스트 파일 줄을 텍스트가 아닌 변수로 읽는 방법

분류에서Dev

c # 텍스트 파일의 줄을 두 개의 동일한 부분으로 나누고 두 개의 다른 목록 상자에 표시하는 방법

분류에서Dev

ListView에서 긴 텍스트를 여러 줄로 표시하는 방법

분류에서Dev

JavaFX 텍스트 영역에서 텍스트에 밑줄을 긋는 방법

분류에서Dev

텍스트 파일에서 쉼표로 구분 된 줄에서 특정 줄과 값을 얻는 방법

Related 관련 기사

  1. 1

    docxtemplater로 텍스트 뒤에 줄 바꿈을 넣는 방법

  2. 2

    명령 출력을 텍스트로 처리하는 방법

  3. 3

    공백을 동시에 밑줄로 바꾸는 방법 (입력 필드에 텍스트를 입력 할 때)?

  4. 4

    공백을 동시에 밑줄로 바꾸는 방법 (입력 필드에 텍스트를 입력 할 때)?

  5. 5

    여러 줄 텍스트 상자에서 단일 텍스트 상자로 줄을 가져 오는 방법?

  6. 6

    두 텍스트 줄 사이에 세로 구분선을 그리는 방법 android?

  7. 7

    마이크로 서비스 아키텍처에서 트랜잭션을 관리하는 방법

  8. 8

    중국어 텍스트에서 이미지 처리로 imageMagick을 사용하는 방법

  9. 9

    for 루프로 읽는 동안 텍스트 파일에 가상 추가 줄을 추가하는 방법

  10. 10

    한 줄의 코드로 Swift 2.0에서 텍스트 파일을 읽는 방법

  11. 11

    .net에서 텍스트 파일을 순차적으로 처리하는 동안 다른 열 값을 확인하는 방법

  12. 12

    Android Studio 프로젝트에 텍스처 파일을 추가하는 방법

  13. 13

    Specflow에서 두 줄로 된 성공 텍스트 메시지의 유효성을 검사하는 방법

  14. 14

    명령 줄의 출력을 스트림으로 처리하는 방법

  15. 15

    텍스트 바로 아래에 표시되는 대신 메뉴 표시 줄의 테두리에서 드롭 다운을 시작하는 방법

  16. 16

    RxJava로 Retrofit 2에서 네트워크 오류를 처리하는 방법

  17. 17

    FOR 루프에서 텍스트 파일의 처리 줄에서 특정 단어 뒤의 모든 줄을 무시하는 방법은 무엇입니까?

  18. 18

    bash에서 일부 텍스트를 포함하는 줄 바로 앞에 텍스트 문서에 줄을 삽입하는 방법은 무엇입니까?

  19. 19

    여러 줄 텍스트 상자에서 다음 텍스트 상자로 이동하는 방법

  20. 20

    배열에서 텍스트 상자 / 라벨 그룹을 처리하는 방법

  21. 21

    SQLCMD의 파일에 텍스트 줄을 추가하는 방법

  22. 22

    Ruby에서 일부 텍스트 줄을 확인하는 방법

  23. 23

    텍스트 파일을 추가하는 동안 포인터를 한 줄 위로 이동하는 방법

  24. 24

    텍스트 편집기에서 동시에 여러 줄에 탭 공간을 추가하는 방법

  25. 25

    텍스트 파일 줄을 텍스트가 아닌 변수로 읽는 방법

  26. 26

    c # 텍스트 파일의 줄을 두 개의 동일한 부분으로 나누고 두 개의 다른 목록 상자에 표시하는 방법

  27. 27

    ListView에서 긴 텍스트를 여러 줄로 표시하는 방법

  28. 28

    JavaFX 텍스트 영역에서 텍스트에 밑줄을 긋는 방법

  29. 29

    텍스트 파일에서 쉼표로 구분 된 줄에서 특정 줄과 값을 얻는 방법

뜨겁다태그

보관