gpt4 book ai didi

java - unSubscribeOn 调用了哪个线程?我们应该调用它吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:06:13 27 4
gpt4 key购买 nike

不指定unsubscribeOn默认到什么线程,还是指定subscribeOn的线程?我们是否需要指定我们希望取消订阅发生的线程,即使它与 subscribeOn 中使用的线程相同?

或者底部的两个代码段是否对取消订阅执行相同的操作?

选项 1:

mSubscription.add(myAppProvider
.getSomeData()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.unsubscribeOn(Schedulers.io())
.subscribe(data -> handleData(data),
throwable -> handleError(throwable)
));

选项 2:

mSubscription.add(myAppProvider
.getSomeData()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(data -> handleData(data),
throwable -> handleError(throwable)
));

我确实看过 Rx-Java docs但他们只解释了 subscribeOn 而没有解释 unSubscribeOn

最佳答案

这些 fragment 有不同的行为。

一般来说,取消订阅沿着运算符序列向上移动,并且可以由任何线程发起(只需从任何线程调用 subscriber.unsubscribe())。如果不存在 unsubscribeOn 运算符,取消订阅操作可能会在调用它的线程上完成操作。 unsubscribeOn 对其上游用于取消订阅的线程提供了更好的控制。

关于java - unSubscribeOn 调用了哪个线程?我们应该调用它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40496565/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com