[리엑티브 생산자 Publisher  1]  Cold Publisher  &  Hot Publisher
Language/Reactive

[리엑티브 생산자 Publisher 1] Cold Publisher & Hot Publisher

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
반응형