RxJava:Reactive Extensions for the JVM,基于JVM的Rx。
>Reactive Extensions(Rx)原来是由微软提出的一个综合了异步和基于事件驱动编程的库。
>RxJava is a Java VM implementation of Reactive Extensions:A library for composing
asynchronous and event-based programs by using observable sequences.
>Rxjava的核心就是异步数据流和响应式编程:
1.把所有的事件(数据)看成一条河流,它可以被观察、过滤或操作,也可以和另外一条河流汇合成一条新的河流。
2.一旦事件产生或发生变化,就可以触发观察这些事件的角色(观察者/订阅者)做出响
RxJava优势及适用场景
>RxJava当然是优秀而且强大的,有以下优势:
具备响应式编程该有的特性。
●为异步而生,无需手动创建线程,
●并具备线程切换能力。
●支持链式调用,保证代码的简洁性。
●各种操作符,功能非常强大,满足各种业务需求!
●简化了异常的处理。
>RxJava适用场景:网络请求、数据库读写、文件读写、定时任务等各种耗时操作需要通过异
步来完成的操作都可以使用RxJava。
RxJava几个重要概念
>观察者:Observer,观察事件变化并处理的主要角色。消费者(Consumer)也可以理解成一种
特殊的观察者。
>被观察者:触发事件并决定什么时候发送事件的主要角色。(异常和完成也是一种事件)
●Observable、Flowable、Single、Completable、Maybe都是被观察者。
●Flowable是支持背压的一种被观察者。
●Single、Completable、Maybe是简化版的Observable。
●几种被观察者通过toObservable/toFlowable/toSingle/,toCompletable/toMaybe相互转换。
>订阅(subscribe):观察者和被观察者建立关联的操作。