一、描述
onBackpressureBuffer 会缓存所有当前无法消费的数据,直到 Observer 可以处理为止。
你可以指定缓冲的数量,如果缓冲满了则会导致数据流失败。
二、示意图
三、示例代码
1 | Observable.interval(1, TimeUnit.MILLISECONDS) |
四、运行结果
1 | onNext: 0 |
由运行结果可以看出,生产者比消费者快 100 倍。使用 1000个缓冲来处理这种消费者比较慢的情况。当消费者消费 11个数据的时候,缓冲区满了,生产者生产了 1100个数据,数据流就抛出异常了。
五、参考资料
PS:欢迎关注 SherlockShi 个人博客