转载请以链接形式标明出处: 本文出自:103style的博客 Base on RxJava 2.X 简介 RxJava 的 Schedulers 提供了以下五种 Scheduler(调度器):...new NewThreadTask()); TRAMPOLINE = TrampolineScheduler.instance(); } ---- 以 Schedulers.single() 为例介绍...我们之前在 Rxjava之timer和interval操作符源码解析 介绍过 timer操作符在订阅的时候会执行ObservableTimer的 subscribeActual 方法, public void...Rxjava之timer和interval操作符源码解析 中介绍的interval操作符里schedulePeriodicallyDirect中会校验这个返回值。...ComputationScheduler 在Rxjava之timer和interval操作符源码解析 中已经介绍过,就不再赘述了。
转载请以链接形式标明出处: 本文出自:103style的博客 Base on RxJava 2.X 简介 首先我们来看subscribeOn和observeOn这两个方法的实现: subscribeOn...之create操作符源码解析 的介绍,我们知道subscribe(observer)实际上是调用前一步返回对象的subscribeActual(observer);方法。...scheduler.scheduleDirect(new SubscribeTask(parent)),这里通过之前 RxJava之Schedulers源码介绍 我们知道,实际时候执行了 SubscribeTask...现在来一步一步介绍,顺便复习一下: 流程图大致如下: (1.0) create 操作符 返回的是 ObservableCreate对象。...所以,你知道RxJava是如何完成线程切换的了吗? 以上
转载请以链接形式标明出处: 本文出自:103style的博客 过滤相关的操作符 以及 官方介绍 RxJava 之 过滤操作符 官方介绍 :Filtering Observables debounce
转载请以链接形式标明出处: 本文出自:103style的博客 连接相关的操作符 以及 官方介绍 RxJava 之 连接操作符 官方介绍 :Connectable Observable Operators
转载请以链接形式标明出处: 本文出自:103style的博客 组合相关的操作符 以及 官方介绍 RxJava 之 组合操作符 官方介绍 :Combining Observables combineLatest...join and groupJoin merge mergeDelayError rxjava-joins–and、then、when startWith switchOnNext zip combineLatest
转载请以链接形式标明出处: 本文出自:103style的博客 转换相关的操作符 以及 官方介绍 RxJava 之 转换操作符 官方介绍 :Transforming Observables buffer...concatMapXXX flatMap flatMapXXX flattenAsFlowable flattenAsObservable groupBy map scan switchMap window 以下介绍我们就直接具体实现...,中间流程请参考 RxJava之create操作符源码解析。...---- concatMap RxJava之concatMap系列转换操作符源码介绍 ---- flatMap RxJava之flatMap系列转换操作符源码介绍 ---- flattenAsFlowable...//3.1 return; } this.it = iterator;//3.2 drain(); } (1.0) 通过Flowable subscribe流程介绍
Single和Observable类似,但是它主要处理单个数值,它只会返回onSuccess和onError,没有onComplete
转载请以链接形式标明出处: 本文出自:103style的博客 前言 前置阅读:RxJava之create操作符源码解析 Rxjava 之 创建操作符 官方介绍 :Creating-Observables...创建相关的操作符 以及 官方介绍 create defer empty error from generate interval just never range timer 前置阅读:Rxjava之...create操作符源码解析,已经很详细的介绍了 create操作符,如果你还没有阅读过,请先阅读 Rxjava之create操作符源码解析。...创建相关的操作符源码介绍 为了方便介绍,顺序有变化 create 操作符 Rxjava之create操作符源码解析 just 操作符 官方提供的使用例子: String greeting = "Hello...之create操作符源码解析 里介绍的 get()和compareAndSet(int var1, int var2)方法。
转载请以链接形式标明出处: 本文出自:103style的博客 异常捕获相关的操作符 以及 官方介绍 RxJava 之 异常捕获操作符 官方介绍 :Error Handling Operators
关于观察者模式的详细介绍可以参考我之前的文章:设计模式之观察者模式 扩展的观察者模式 在RxJava中主要有4个角色: Observable Subject Observer Subscriber Observable...Subscriber其实是一个实现了Observer的抽象类,后面我们分析源码的时候也会介绍到。Subject比较复杂,以后再分析。 上一篇文章中我们说到RxJava中有个关键概念:事件。...subscribe()的参数除了可以是Observer和Subscriber以外还可以是Action1、Action0;这是一种更简单的回调,只有一个call(T)方法;由于太简单这里就不做详细介绍了!...RxJava为我们提供Scheduler用来做线程调度,我们来看看RxJava提供了哪些Scheduler。...好了,RxJava系列的入门内容我们就聊到这。下一篇我们再继续介绍更多的API以及它们内部的原理。 如果大家喜欢这一系列的文章,欢迎关注我的知乎专栏和GitHub。
转载请以链接形式标明出处: 本文出自:103style的博客 转换相关的操作符 以及 官方介绍 RxJava 之 concatMap 系列 转换操作符 官方介绍 :Transforming Observables...concatMapIterable concatMapMaybe concatMapMaybeDelayError concatMapSingle concatMapSingleDelayError 以下介绍我们就直接具体实现...,中间流程请参考 RxJava之create操作符源码解析。
Further reading: https://github.com/ReactiveX/RxJava/wiki/Plugins"); // 调用ObservableCreate的subscribeActual
一、RxJava 简介 1、RxJava 概念 RxJava 框架 是一个 异步编程函数库 , 包含了如下要素 : 观察者模式 迭代器模式 函数式编程 RxJava 框架应用场景 : 异步操作 事件流...2、RxJava 组成 - 被观察者 / 观察者 / 订阅 / 操作符 RxJava 组成要素 : Observable(被观察者): Observable 是一个 可以发送消息的数据源 , 可以同时发送若干消息...可以进行消息的 过滤、变换、合并、组合等操作 ; 3、RxJava 适用场景 RxJava 通过 组合调用 / 链式调用 被观察者 / 观察者 / 订阅 / 操作符 要素 ; RxJava 可以简化...RxJava 还支持 线程切换 / 并发处理 / 错误处理 ,利于处理各种 并发 和 异步 操作。...RxJava 异步编程库,蕴含了 响应式编程 思想 ,提供了 简洁、灵活和可组合 的方式 来 处理 异步任务 和 事件流。
RxJava Operators By Category Creating Observables 创建 Operators that originate new Observables.
前言: 现在面试很多都会问RxJava的源码,直接讲RxJava的源码,估计大家都不太会看下去,我们先看个小考题,然后再去看相关的源码。...isDisposed(); i++) { T value = a[i]; /*我们知道在RxJava 1的时候我们发送一个null值是可以的..., 但是RxJava2就不行了,因为做了一个判空操作。...而情形二其实不是考验RxJava的源码基础,而是考验 Java基础。...具体可以参考这篇:Java值传递以及引用的传递、数组的传递 结语: 所以本章我们更多地看了Rxjava的Observable生成及Observer订阅时候的部分源码及Java值传递等相关知识。
Rxjava四要素 被观察者 在Rxjava当中, 决定什么时候触发事件, 决定触发什么样的事件; 观察者 决定事件触发的时候将产生什么样的行为; 类似于传统观察者模式, 观察者会随着被观察者的状态变化而发生相应的操作...其中,其实Subscriber就是我们的观察者; 后面的Rxjava源码阅读中, 我们会发现Observer在源码中也会被转换成Subscriber来进行相应的处理, 所有才说其实Subscriber...第二步, 创建观察者Observer/Subscriber,即第二个要素, 1.在传统的观察者模式当中,观察者只有一个update()方法, 在其中根据被观察者的状态变化而做出反应/改变; 而在Rxjava...的一种简单的使用, 主要是理解一下Rxjava对传统观察者设计模式的拓展和改进; 实际情况当中,其实它还包括了很多操作符, 以及Rxjava最核心的线程控制调度, 这两部分是Rxjava的核心...package com.example.jiajiemu.a11.rxjava; import rx.Observable; import rx.Observer; import rx.Subscriber
鉴于 RxJava 目前这种既火爆又神秘的现状,而我又在一年的使用过程中对 RxJava 有了一些理解,我决定写下这篇文章来对 RxJava 做一个相对详细的、针对 Android 开发者的介绍。...RxJava 在 GitHub 主页上的自我介绍是 "a library for composing asynchronous and event-based programs using observable...---- 三、API 介绍和原理简析 这个我就做不到一个词说明了……因为这一节的主要内容就是一步步地说明 RxJava 到底怎样做到了异步,怎样做到了简洁。...我列举几个常用的变换: map(): 事件对象的直接变换,具体功能上面已经介绍过。它是 RxJava 最常用的变换。map()的示意图: ?...下面我用对比的方式来介绍 Retrofit 的 RxJava 版 API 和传统版本的区别。 以获取一个User对象的接口作为例子。
前言 通过前面五个篇幅的介绍,相信大家对RxJava的基本使用以及操作符应该有了一定的认识。但是知其然还要知其所以然;所以从这一章开始我们聊聊源码,分析RxJava的实现原理。...本文我们主要从三个方面来分析RxJava的实现: RxJava基本流程分析 操作符原理分析 线程调度原理分析 本章节基于RxJava1.1.9版本的源码 一、RxJava执行流程分析 在RxJava系列...2(基本概念及使用介绍)中我们介绍过,一个最基本的RxJava调用是这样的: 示例A Observable.create(new Observable.OnSubscribe() {...这也印证了我在RxJava系列2(基本概念及使用介绍)中说的,onSubscribe.call(subscriber)中的subscriber正是我们在subscribe()方法中new出来的观察者。...三、线程调度原理分析 在前面的文章中我介绍过RxJava可以很方便的通过subscribeOn()和observeOn()来指定数据流的每一部分运行在哪个线程。
这一章我们接着介绍组合操作符,这类operators可以同时处理多个Observable来创建我们所需要的Observable。组合操作符主要包含:等等。...Join 我们先介绍下join操作符的4个参数: Observable:源Observable需要组合的Observable,这里我们姑且称之为目标Observable; Func1:接收从源Observable...程序输出: 通过转换操作符、过滤操作符、组合操作符三个篇幅将RxJava主要的操作符也介绍的七七八八了。更多操作符的介绍建议大家去查阅官方文档,并自己动手实践一下。
在异步调用时,RxJava 中有个缓存池,用来缓存消费者处理不了暂时缓存下来的数据,缓存池的默认大小为 128,即只能缓存 128 个事件。...backpress.PNG BUFFER 就是把 RxJava 中默认的只能存 128 个事件的缓存池换成一个大的缓存池,支持存很多很多的数据。...Subject 不支持背压,是 RxJava 1.x 继承过来的,Processor 继承 FlowableProcessor,支持背压。
领取专属 10元无门槛券
手把手带您无忧上云