Cold Sequence
구독 할 때마다 타임라인이 새로 생성됨
구독하는 시점과 상관없이 첫번째로 emit 된 데이터부터 읽을 수 있음
ex) Flux.fromIterable(Array.asList("A", "B", "C")
subscribe(data -> Logger.info("data : {}", data) // ABC
subscribe(data -> Logger.info("data : {}", data) // ABC
Hot Sequence
타임라인이 하나만 존재
구독하는 시점에 따라 구독 시점 이후로 emit 된 데이터만 읽을 수 있음
ex) Flux.fromStream(Stream.of("A", "B", "C").delayElements(Duration.ofSeconds(1)).share()
subscribe(data -> Logger.info("data : {}", data) // A B
TimeUtils.sleep(2000)
subscribe(data -> Logger.info("data : {}", data) // C
* share() : cold 시퀀스를 hot 시퀀스로 변환해줌
'back > Reactive Java' 카테고리의 다른 글
Reactive 란? (1) | 2023.10.16 |
---|