Rx Java 2 Sync与异步

时间:2017-09-17 08:20:50

标签: rx-java2

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

你能解释一下同步和非同步操作员的不同之处吗?异步操作符可以改变上游的项目顺序吗?

哪些运营商是异步的?只合并和flatMap?

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

1 个答案:

答案 0 :(得分:0)

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

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

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