我们常见的编程范式有命令式编程、函数式编程和逻辑式编程。我们常见的面向对象编程是一种命令式编程。命令式编程是面向计算机硬件的抽象,有变量、赋值语句、表达式和控制语句。...响应式编程是一种面向数据流和变化传播的编程范式,数据更新是相关联的。把函数式编程里的一套思路和响应式编程合起来就是函数响应式编程。...filepath=io/reactivex/rxjava2/rxjava/2.2.3/rxjava-2.2.3.jar // create a flowable Flowable.../github.com/ReactiveX/RxJava 这可能是最好的RxJava 2.x 教程(完结版) - 简书 https://www.jianshu.com/p/0cd258eecf60 RxJava2...系列 (1):一篇的比较全面的 RxJava2 方法总结 - 掘金 https://juejin.im/post/5b72f76551882561354462dd 给 Android 开发者的 RxJava
RxJava2 使用 private void analyzeRxJava(){ Observable.create(new ObservableOnSubscribe<String>...observer, "Plugin returned null Observer"); //与观察者进行绑定,调用ObservableCreate的subscribeActual方法,将源头和终点关联起来...super T> actual; //读和写都是原子性的对象引用变量 //用于保存上游的disposable,以便在下游dispose时一起dispose final AtomicReference...源码分析总结 在subscribeActual()方法中,源头和终点关联起来。...CreateEmitter 中,只有Observable和Observer的关系没有被dispose,才会回调Observer的onXXXX()方法 Observer的onComplete()和onError
Log.e(TAG, "accept: take : " + integer + "n"); } }); 5.和少的配对...它和 concat 的区别在于,不用等到 发射器 A 发送完所有的事件再进行发射器 B 的发送 Flowable.merge(Flowable.just(1, 2), Flowable.just(3,
邻家小妹.jpg 在 RxJava 中 doFinally 和 doAfterTerminate 这两个操作符很类似,都会在 Observable 的 onComplete 或 onError 调用之后进行调用...该方法是 Observable 和 Observer 连接的纽带。其中,source 代表了被观察者 Observable 本身,而 DoOnEachObserver 是实际的观察者。...这是 doFinally 和 doAfterTerminate 最大的区别。 同样,看一下 doFinally 的源码。它调用的是 ObservableDoFinally 类。...二者的顺序 doFinally 和 doAfterTerminate 都会在 onComplete 之后才执行,那么它们二者的顺序是如何呢?...总结 本文是对 doFinally 和 doAfterTerminate 两个操作符的总结。也是对《RxJava 2.x 实战》一书中,第二章第一节最后一部分内容do操作符的补充。
接上回继续,今天来学习下zip(打包)操作 一、zip操作 @Test public void zipTest() { Obse...
看大神用沙县小吃教你理解RXJAVA2 作者:HuYounger 博客:http://rkhcy.github.io/ 文章目录 前言 例子 源码分析 0 前言 从这篇文章开始,系统地学习RxJava2...设计思想和源码实现。...1 例子 通过生活中的几个角色来学习RxJava2:饭店、厨师、服务员、顾客。 ?...上面的漫画写成RxJava2就是很多入门文章中看到的:事件发起者(上游) ? 事件接收者(下游) ? 建立联系 ? 打印如下: ? 下面把一些类代入角色结合源码分析,演员表 ?...所以可以看出厨师做不做菜只取决于饭店(Observable.subscribe),后面的流程和上面分析的一致。
subscribeOn这个操作符指定的是Observable自身在哪个调度器上执行,而且跟调用的位置没有关系。
引用 implementation 'io.reactivex.rxjava2:rxandroid:2.0.2' implementation 'io.reac...
上一篇已经熟悉了Observable的基本用法,但是如果仅仅只是“生产-消费”的模型,这就体现不出优势了,java有100种办法可以玩这个:) 一、更简单的多线...
作者:HuYounger 博客:http://rkhcy.github.io/ 文章目录 概述 例子 源码分析 多次subscribeOn 最后 0 概述 接着《图解RxJava2(一)》这一片讲讲在...基于上篇的分析,在执行完 Observable.create 和 new Observer 后此时主线程应该是下面的样子 ?...Schedulers.newThread() Scheduler 翻译为调度器,RxJava2 中 Scheduler 的一些常用子类如下: ?...之后把 NewThreadWorker 和步骤①中的任务包装成 DisposeTask,又是一个Runnable ? 最后会执行 NewThreadWorker.schedule 方法 ?...其实不然,具体可以看Dávid Karnok 的这篇博客,其中涉及到一些 Rx 操作符操作,本篇只是介绍 subscribeOn 的使用和原理,就不引入其他内容,mark 下日后再捡起来看。
步骤① 和上篇一样,这里也会创建 Worker,具体实现在 HandlerScheduler 中 ? 并把之前持有主线程 Looper 的 Handler 传进去。 ?...这里会创建小强(ObserveOnObserver),为了和后面区分开,就叫他2号店小强,2号店小强持有小明的引用,之后执行肯德基1号店的 subscribeActual ,observer 是肯德基2
mSubscriptionMap.get(key).add(disposable); } else { //一次性容器,可以持有多个并提供 添加和移除
Skip操作符可以说是上一篇Take操作符的兄弟 suppress the first n items emitted by an Observable 去...
上一篇文章中我们学习了RxJava2中 FlatMap 的原理,同时知道,FlatMap经过转换后发射的数据不是严格有序的,如果需要数据按顺序被发射,RxJava2提供了另外一个操作符, 也是这篇文章的主角
关于RxJava2的少之又少,于是,便有了此文。 此文的目的有三个: 1. 给对 RxJava2感兴趣的人一些入门的指引 2....给正在使用 RxJava2但仍然心存疑惑的人一些更深入的解析 3.给想从RxJava1替换成RxJava2的人给出直接的对比。...RxJava1与RxJava2的区别 说到区别,可能有的小伙伴会问,我没看过rxjava1。可以直接看rxjava2么。...除了保证了执行顺序,其他都和concatMap一毛一样。你说保证就保证啊。...其原因我认为有两点,第一:可以和okhttp结合。第二:可以和rxjava结合。
subscribeOn和observeOn负责线程切换,同时某些操作符也默认指定了线程....以操作符timeout为例:它对应ObservableTimeoutTimed和TimeoutObserver @Override public void onNext(T t) {...在创建型操作符的subscribeActual方法和subscribeOn对应的Observable的subscribeActual方法内调用了Observer.onSubscribe(disposable...)方法.那么这两处的执行线程就决定了onSubscribe.accept(d);的执行线程. doFinally 对应ObservableDoFinally和DoFinallyObserver //...public void onNext(T t) { onNext.accept(t); } 和自身对应的observer.onNext所在线程保持一致.
本文作者JasonChen,原文地址: http://chblog.me/2018/12/19/rxjava2%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90(%E4%B8%...80)/ ReactiveX 响应式编程库,这是一个程序库,通过使用可观察的事件序列来构成异步和事件驱动的程序。...RxJava2 Rx有很多语言的实现库,目前比较出名的就是RxJava2。本文主要讲Rxjava2的部分源码解读,内部设计机制和内部执行的线程模型。 ?...基本使用 使用RxJava2大致分为四个操作: 建立数据发布者 添加数据变换函数 设置数据发布线程池机制,订阅线程池机制 添加数据订阅者 // 创建flowable Flowable<Map<String...设计模式:观察者模式和装修者模式 并发处理技巧:回压策略(其实本质是缓存)的实现原理以及细节点
作为github上star数极高的响应式编程java扩展类库,rxjava是啥就不多说了,网上能查到一堆介绍,下面是一些学习记录: 前提依赖: compile ...
前言 RxJava2与Retrofit2是老搭档了,之前写了一篇《RxJava和Retrofit2的统一处理单个请求》,是用的Rxjava1.0,本次使用Rxjava2.0与Retrofit2进行封装,...Rxjava2相比Rxjava1优化和改动不少了东西,网上有很多大神写的文章,这里就不粘贴复制了。封装的过程有什么问题、疑问,请在下方留言。
字面意思减少,也可以叫“聚合”或者“压缩” 实际上的效果就是可以把一个被观察者中的多个事件进行压缩,最后发射压缩后的事件
领取专属 10元无门槛券
手把手带您无忧上云