RxJava 源码解读分析 Scheduler
来源:互联网 发布:443端口号 编辑:程序博客网 时间:2024/05/16 07:25
RxJava的scheduler并不复杂,凡是代码中看到xx.call()的,可以理解为大多数都是指调用OnSubscribe.call(),也就是我们一开始就定义好的Observable.onSubscribe。
如下图
从图中可以看出,Sheduler大概有5种。
EventLoopsScheduler,Schedulers.computation()所用的线程组,是一个固定大小的FixedSchedulerPool,用RoundRobin方式轮训获取worker线程,这就是为什么起名叫叫EventLoop吧,如下图。
CachedThreadScheduler,Schedulers.io()所用的线程组,是一个由ConcurrentLinkedQueue组成的CachedWorkerPool,每次从Queue中获取可用worker线程,如下图。
TrampolineScheduler,Schedulers.trampoline()所用的线程组,组合了一个PriorityBlockingQueue,以提交事件的时间进行排序,依次执行任务,如下图。
ImmediateScheduler,当前线程立即执行,如下图
NewThreadScheduler,总是新启动线程执行,如下图
0 0
- RxJava 源码解读分析 Scheduler
- RxJava 源码解读分析 observeOn
- RxJava 源码解读分析 from
- RxJava 源码解读分析 just
- RxJava 源码解读分析 defer
- RxJava 源码解读分析 map
- RxJava 源码解读分析 flatMap
- RxJava 源码解读分析 观察者模式
- RxJava 源码解读分析 subscribeOn 方法
- RxJava 源码解读
- Kubernetes Scheduler源码分析
- 源码分析参考:Scheduler
- Rxjava源码(三)-----线程控制Scheduler
- Storm-源码分析- Scheduler (backtype.storm.scheduler)
- RxJava-Scheduler
- RxJava之just源码解读
- Quartz源码分析之Scheduler
- cocos2dx源码分析:定时器Scheduler
- tensorflow资源整合
- improve your python code(4)
- linux中chown的使用
- C++构造函数的default和delete
- JSP基础语法
- RxJava 源码解读分析 Scheduler
- CSU 1120 病毒 最长公共上升子序列(LCIS)
- 【Docker系列】——Docker 架构介绍
- python中的一点小知识与库(2)
- 洛谷 3375_[模板]KMP字符串匹配_KMP
- android中服务简单使用
- C++11 新标准(一)
- 100题与剑指
- Server Tomcat v6.0 Server at localhost was unable to start within 45 second