面试

rxjava学习

2018-03-12  本文已影响1人  吕志豪

RxJava详细教程

RxJava是Reactive Programming在Java中的一种实现。什么是响应式编程? 基于观察者模式,将事件流将从上往下,从订阅源传递到观察者。
它可以避免回调嵌套,更优雅地切换线程实现异步处理数据。配合一些操作符,可以让处理事件流的代码更加简洁,逻辑更加清晰。

public enum BackpressureStrategy {
   ERROR,BUFFER,DROP,LATEST,MISSING
}

Flowable的异步缓存池不同于Observable,Observable的异步缓存池没有大小限制,可以无限制向里添加数据,直至OOM,而Flowable的异步缓存池有个固定容量,其大小为128。
BackpressureStrategy的作用便是用来设置Flowable通过异步缓存池存储数据的策略。
ERROR

在此策略下,如果放入Flowable的异步缓存池中的数据超限了,则会抛出MissingBackpressureException异常。
DROP

在此策略下,如果Flowable的异步缓存池满了,会丢掉将要放入缓存池中的数据。
LATEST

与Drop策略一样,如果缓存池满了,会丢掉将要放入缓存池中的数据,不同的是,不管缓存池的状态如何,LATEST都会将最后一条数据强行放入缓存池中。
BUFFER

此策略下,Flowable的异步缓存池同Observable的一样,没有固定大小,可以无限制向里添加数据,不会抛出MissingBackpressureException异常,但会导致OOM。

上一篇 下一篇

猜你喜欢

热点阅读