- doOnDispose는 Disposable.dispose를 호출하는 Thread에서 수행되며 주변의 observeOn의 영향을 받지 않는다
- 만약 Android의 Activity#onDestory에서 dispose를 한다면 체이닝 내부의 (zip, merge등) 모든 observable은 Android main thread에서 dispose되고 doOnDispose가 호출 된다.
doOnSubscrbe는 subscribeOn로 지정한 Thread에서 수행되며 주변의 observeOn의 영향을 받지 않는다.
Observable.zip()의 내부의 Observable들 중 마지막 Observable의 thread에서 수행된다.
zip은 기본적으로 내부의 Observable을 순차적으로 수행한다(zip의 subscrbieOn에 정의된 thread에서). 병렬로 수행하려면 내부의 Observable에 각각의 subscribeOn이 지정되어야 한다.
zip의 bifunction은 zip에서 마지막으로 수행된 observable의 thread에서 수행된다.
single1
.observeOn(mainThreadScheduler)
.zipWith(single2.observeOn(mainThreadScheduler))