728x90
반응형
Cold Publisher & Hot Publisher
Cold Publisher(차가운 생산자)
생산자는 소비자가 구독 할때마다 데이터를 처음부터 새로 통지한다.
데이터를 통지하는 새로운 타임 라인이 생성된다.
소비자는 구독 시점과 상관없이 통지된 데이터를 처음부터 전달 받을 수 있다.
void ColdPublisher(){
Flowable<Integer> flowable = Flowable.just(1, 3, 5, 7);
flowable.subscribe(data -> System.out.println("구독자1: " + data));
flowable.subscribe(data -> System.out.println("구독자2: " + data));
}
Hot Publisher(뜨거운 생산자) :
생산자는 소비자 수와 상관없이 데이터를 한번만 통지한다.
즉, 데이터를 통지하는 타임 라인은 하나이다.
소비자는 발행된 데이터를 처음부터 전달 받는게 아니라 구독한 시점에 통지된 데이터들만 전달 받을 수 있다.
void HotPublisher(){
PublishProcessor<Integer> processor = PublishProcessor.create();
processor.subscribe(data -> System.out.println("구독자1: " + data));
processor.onNext(1);
processor.onNext(3);
processor.subscribe(data -> System.out.println("구독자2: " + data));
processor.onNext(5);
processor.onNext(7);
processor.onComplete();
}
728x90
반응형
'Language > Reactive' 카테고리의 다른 글
[리엑티브 생산자 Publisher 3] Single & Maybe & Completable (0) | 2021.06.04 |
---|---|
[리엑티브 생산자 Publisher 2] Flowable & Observable (feat. 배압전략) (0) | 2021.06.04 |
Processor와 Subject (0) | 2021.04.25 |
RxJava로 기존 Android code 개선하기 (0) | 2021.04.25 |
[리액티브 연산자 Operator 2] 에러, 유틸, 조건, 통지 (0) | 2021.04.25 |