Using subscribeOn() with a Subject



我想知道在Subject上调用subscribeOn()的后果是什么。

我明白(默认情况下)这不会改变线程项的发射,我只是好奇它是否会导致一些其他负面的副作用。

一般来说,从不同的线程调用subscribe()到同一个Observable不安全吗?如果是,subscribeOn()是否使其安全?

在同一个Subject上从不同的线程调用subscribe()是安全的(注意,从不同的线程调用subject.doOnXXX需要同步,如果需要,请询问澄清)。将其推广到所有可观察对象是不可能的,因为很容易构造一个不是线程安全的(比如有可见性问题)。你是对的,可以通过使用

使一个非线程安全的Observable成为线程安全的。
.subscribeOn(Schedulers.from(Executors.newSingleThreadExecutor()))

使用一个以上线程的调度程序不会保护你的线程安全。

相关内容

  • 没有找到相关文章

最新更新