Notice
Recent Posts
Recent Comments
올해는 머신러닝이다.
[RxJava2]refCount 와 share 기본 개념 본문
refCount()
는 autoConnect(1) 와 유사하다.
그럼 autoConnect
와 refCount
와 차이점은 무엇일까?
차이점은 더이상 배출할 Observer
가 없을시 refCount
는 자동으로 자신을 해지를 하고 다시 새로운 Observer 이 오면 처음부터 자동으로 시작을 한다.
autoConnect
는 동작이 끝나면 dispose 가 되지만 다시 새로운게 오면 시작을 하진 않는다.
Observable<Long> threeRandoms = Observable.interval(1,TimeUnit.SECONDS)
.publish()
.refCount();
//Observable 1 배출
threeRandoms.take(5).subscribe( i->System.out.println("Observer 1 : " + i));
sleep(3000); // 3초동안 잠자기
//Observable 2 배출
threeRandoms.take(2).subscribe( i -> System.out.println("Observer 2: " + i));
sleep(3000); // 3초동안 잠자기
//Observable 3 배출
threeRandoms.subscribe( i-> System.out.println("Observer 3: " + i));
sleep(3000); // 3초동안 잠자기
....................
Observable 1 : 0
Observable 1 : 1
Observable 1 : 2
Observable 1 : 3
Observable 2: 3
Observable 1 : 4
Observable 2: 4 <-- 배출이 완료가 되고 dispose가 됐다.
Observable 3: 0 <-- 새로운 Observer 왔기 때문에 시작된다.
Observable 3: 1
그리고 publish().refCount()
을 줄여서 share()
라고 사용가능하다.
Observable.interval(1,TimeUnit.SECONDS).share(); // publish().refCount() 와 같은 의미
'스터디 > RxJava2' 카테고리의 다른 글
[Rxjava2]예제로 이해하는 PublishSubject (0) | 2017.10.22 |
---|---|
[RxJava2] Replaying , Caching 을 알아보자. (0) | 2017.10.22 |
[RxJava2] publish <-> Connect 예제로 이해해보자. (0) | 2017.10.22 |
[RxJava2]Multicasting 기본 개념 이해 (0) | 2017.10.22 |
[RxJava2] cold Observable? Hot Observable? 개념 설명 (0) | 2017.10.22 |