【问题标题】:Rx Java 2 Sync vs. AsyncRx Java 2 同步与异步
【发布时间】:2017-09-18 15:56:07
【问题描述】:

我知道同步与异步的类型,其中 Observable 可以在主线程或 subscribeOn 指定的后台线程上处理(可能是 observeOn)。这个案子很清楚。

你能解释一下同步运算符和异步运算符之间的区别在哪里吗?异步算子可以从上游改变项目的顺序吗?

哪些运算符是异步的?只合并和flatMap?

当链中的所有操作符同步时,必须使用整个链处理发出的项目,然后才能处理下一个项目?带有地图和过滤器的链。

【问题讨论】:

    标签: rx-java2


    【解决方案1】:

    任何必须处理多个源或采用调度程序的运算符都被视为异步边界 - 简称异步。

    多源运算符可能会遇到来自多个线程的信号;即使这些信号有一个总顺序,某些运算符(例如merge())也可能不会以相同的顺序发出它们。不过,一般来说,来自一个来源的信号最终可能会与来自其他来源的信号交错。

    同步链深入到 onNext 调用链中,除非发生一些缓冲,否则它们必须返回到下一个元素的顶部源。

    【讨论】:

      猜你喜欢
      • 2018-05-15
      • 2015-02-23
      • 2012-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-24
      • 2017-01-06
      • 1970-01-01
      相关资源
      最近更新 更多