RxJava分析(二)线程调度原理

2018-09-04  本文已影响16人  sankemao

线程切换

订阅的过程是自下而上的,当里面的Obserable订阅包装后的Observer的时候,主要关注subscribeActual中的方法。
如果是subscribeOn(xxx),那么就会createWorker()创建线程并立刻在线程中执行任务,接下来的所有订阅都将执行在切换后的线程中,因此,第一个subscribeOn之前的变换都将执行在该subscribeOn所指定的线程中。
而对于observeOn(xxx),它也切换了线程,但并不会立刻执行,它会在订阅完成后,自上而下执行的时候再切换线程,所以observeOn(xxx)所影响的是它之后的变换,直到下一个observeOn(xxx),又会切换到新的线程进行变换。

参考:
https://www.jianshu.com/p/9e3930fbcb26

上一篇 下一篇

猜你喜欢

热点阅读