真题解析
核心知识点:
- 1、观察者中的
onSubscribe
运行在哪个线程中? - 2、
subscribeOn
上配对还是下配对? - 3、
observeOn
上配对还是下配对?
原理:
- 1、设计模式:观察者模式
- 2、设计模式:装饰者,啥是装饰者,俄罗斯套娃懂不懂
- 3、递归
提示
-
1、
subscribeOn
方法对应的是一个自驱动主题,即:在subscribeActual
中,自动执行subscribe
。public final class ObservableDoOnLifecycle<T> extends AbstractObservableWithUpstream<T, T> { private final Consumer<? super Disposable> onSubscribe; private final Action onDispose; // .... @Override protected void subscribeActual(Observer<? super T> observer) { source.subscribe(new DisposableLambdaObserver<T>(observer, onSubscribe, onDispose)); } }
2、每次遇到
subscribeOn
,主题就会产生一次分离,并执行下游的onSubscribe
。
分离的目的是为了上游的主题对象运行在本次subscribeOn
指定的线程里。