上一节对于基本常用的操作符有了基本的了解。接下来学学BackPressure(背压)。
一、什么是背压
在RxJava中会经常遇到一种情况就是被观察者发送消息太快以至于它的操作符或者订阅者不能及时处理相关的消息。那么随之而来的就是如何处理这些未处理的消息。
例如,上节讲到的zip操作符,如果zip将两个无限发送事件的被观察者进行组合,那么其中一个被观察者A发送事件特别快,另外一个被观察者发送事件特别慢,那么就会有越来越多等待组合的事件。等发送事件慢的被观察者发送事件,等待的发射事件快的再与慢的组合,是不是很笨重+占资源?
那么这个时候backpressure(背压)出现了,RxJava中多重控制流及背压策略用来应对一个快速发送消息的被观察者遇到一个处理消息缓慢的观察者。下面的解释将会向你展示你应当怎么设计属于你自己的被观察者和操作符去应对流量控制(flow control)。
简单来说,就是来控制事件流速。