RxJava学习(九)
来源:互联网 发布:学英语从零开始软件 编辑:程序博客网 时间:2024/06/16 09:46
Scheduler调度器使用及示例
之前提到过subscribeOn和observeOn这两个方法,我在讲一下这两个方法是干啥用的。
subscribeOn
指定被观察者,也就是事件源在哪个线程执行
observeOn
指定观察者运行在哪个线程
通常境况下我们会是事件源运行在其他线程,而观察者运行在主线程,也就是UI线程。
下表展示RxJava中常见的调度器种类:
除了之前我们介绍过的subscribeOn/observeOn会用到Scheduler。在RxJava中还有Worker会用到它。
传统的线程
new Thread(new Runnable() { @Override public void run() { // TODO }}).start();
在RxJava中我们这样写
Schedulers.newThread().createWorker().schedule(new Action0() { @Override public void call() {// name:RxNewThreadScheduler-1 System.out.println("=====name: "+Thread.currentThread().getName()); } });
这样的好处是我们可以直接使用RxJava的线程调度逻辑。并且在合适的时机终止线程
Scheduler.Worker worker = Schedulers.newThread().createWorker(); worker.schedule(new Action0() { @Override public void call() {// name:RxNewThreadScheduler-1 System.out.println("=====name: "+Thread.currentThread().getName()); } }); worker.unsubscribe();
除此之外,还有个好处是更容易的实现延迟执行和周期执行:
//延迟 Schedulers.computation().createWorker().schedule(new Action0() { @Override public void call() { } },3000, TimeUnit.SECONDS); //周期 Schedulers.computation().createWorker().schedulePeriodically(new Action0() { @Override public void call() { } },0,1000,TimeUnit.SECONDS);
0 0
- RxJava学习(九)
- RxJava 学习笔记(九) --- Error Handling 错误处理操作
- (九)RxJava:RxBus
- 王学岗RxJava(九)
- Rxjava学习
- RxJava学习
- rxjava 学习
- RxJAVA学习
- rxJava学习
- rxjava学习
- RxJava学习
- Rxjava学习
- 学习RxJava
- Rxjava学习
- RxJava 学习
- RxJava学习
- RxJava学习
- RxJava学习
- 禁止网页右键查看源码(源文件)
- 极控者 ID模块使用说明
- matlab 可视化(specifier)
- Deep learning学习笔记(1):CNN的反向求导及练习
- 实现数据权限控制的一种方法
- RxJava学习(九)
- 静态数据成员和静态函数成员
- HDU 1215 七夕节
- 常用的推荐算法解析
- javascript入门篇之对象与数组
- MVPC架构项目
- JS实现跟随
- 编译内核fatal error:openssl/名单.h:No such file or directory
- 轻量级图形报表工具JSCharts中文开发文档