java zip拆分_RxJava之zip操作符

讲解zip操作符之前,先来巩固一个概念的区别,比如如何让一个线程睡眠一秒?

通常情况下,我们在Java中会使用Thread.sleep(1000),但是笔者就就这个问题今天就遇到一个坑,不断地出现InterruptedException这个异常,后来通过另外一种方式解决了问题,即SystemClock.sleep(1000);

那么zip操作符是如何定义的呢?

简单来说zip操作符就是合并多个被观察者的数据流, 然后发送(Emit)最终合并的数据。借用网上的一张图,分析的比较透彻,如下:

248c784c6d88

image.png

从上游中可以看出,上游有两根水管,其中一根水管负责发送圆形事件 , 另外一根水管负责发送三角形事件 , 通过Zip操作符, 使得圆形事件 和三角形事件 合并为了一个矩形事件 . 拆分过程如下:

248c784c6d88

image.png

通过分解动作我们可以看出:

组合的过程是分别从 两根水管里各取出一个事件 来进行组合, 并且一个事件只能被使用一次, 组合的顺序是严格按照事件发送的顺利 来进行的, 也就是说不会出现圆形1 事件和三角形B 事件进行合并, 也不可能出现圆形2 和三角形A 进行合并的情况.

最终下游收到的事件数量 是

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值