java – 为什么在这种情况下我们需要Publish和RefCount Rx运算
我正在努力熟悉反应背压处理的问题,特别是通过阅读这个wiki:https://github.com/ReactiveX/RxJava/wiki/Backpressure In the buffer paragraph,我们有更多涉及的示例代码:
如果我理解正确,我们通过为缓冲区运算符生成去抖动信号流来有效地去除突发源流. 但为什么我们需要在这里使用发布和引用计数器?如果我们放弃它们会导致什么问题?评论并没有让我更清楚,默认情况下RxJava Observables不是多播吗? 最佳答案
答案在于hot and cold观察点之间的区别.
缓冲区运算符组合了两个流,无法知道它们有一个共同的源(在您的情况下).当激活(订阅)时,它将同时订阅它们,作为回报,它将触发对原始输入的2个不同订阅. 现在有2件事情可能发生,要么输入是热的可观察的,订阅没有效果,只能注册监听器,一切都将按预期工作,或者它是一个冷可观察,每个订阅将导致潜在的不同和不同步的流. 例如,冷可观察量可以是在订阅时执行网络请求并且通知结果的冷可观察量.不调用发布意味着将完成2个请求. 发布refcount / connect是将冷可观察变为热点的常用方法,确保单个订阅将发生,并且所有流的行为都相同. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |