1.RxJava线程控制(调度 / 切换)的作用
指定 被观察者 (Observable) / 观察者(Observer) 的工作线程类型。
实现异步操作。
2.功能性操作符
subscribeOn():指定被观察者(Observable)的工作线程,多次指定只有第一次生效。
observeOn():指定观察者(Observer)的工作线程,每次指定都切换一次。
3.线程类型
| 类型 | 作用 |
|---|---|
| Schedulers.single() | 使用定长为1的线程池,重复利用这个线程 |
| Schedulers.computation() | 使用的固定的线程池,大小为CPU核数 |
| Schedulers.io() | io操作线程,网络请求、读写文件等io密集型操作 |
| Schedulers.trampoline() | 直接在当前线程运行,如果当前线程有其他任务正在执行,则会先暂停其他任务 |
| Schedulers.newThread() | 每次启用新线程,并在新线程中执行操作 |
| AndroidSchedulers.mainThread() | Android主线程 |
注:RxJava内部使用 ==线程池== 来维护这些线程,所以线程的调度效率非常高。