我知道同步和异步的类型,其中可观察对象可以在主线程或由subscribeOn (可能是observeOn)指定的后台线程上处理。这个案例很清楚。
你能给我解释一下同步运算符和异步运算符的区别吗?异步操作员是否可以更改上游项目的订单?
哪些运算符是异步的?只有merge和flatMap?
当链中的所有运算符都是同步的时,是否必须使用整个链处理已发出的项,然后才能处理下一个项?使用map和filter链接。
发布于 2017-09-18 15:56:08
任何必须处理多个源或使用Scheduler的操作员都被认为是异步边界异步。
多源操作符可能会遇到来自多个线程的信号;即使存在这些信号的总顺序,一些操作符,如merge(),可能不会以相同的顺序发出它们。通常,来自一个源的信号可能最终与来自其他源的信号交织。
同步链深入到onNext调用链中,除非发生缓冲,否则它们必须返回到下一个元素的顶层源代码。
https://stackoverflow.com/questions/46262063
复制相似问题