我想知道在主题上调用subscribeOn()会产生什么后果。
我理解(默认情况下)这不会改变发布的线程项目,我只是好奇它是否会引起其他一些负面影响。
一般来说,从不同的线程不安全地调用subscribe()到同一个Observable?如果是的话,subscribeOn()会以某种方式使这个安全吗?
答案 0 :(得分:1)
从不同线程调用同一subscribe()
上的Subject
是安全的(请注意,从不同线程调用subject.doOnXXX
需要同步,如果需要请求澄清)。将其推广到所有Observable是不可能的,因为很容易构造一个非线程安全的(比如可见性问题)。你是对的,因为可能使用
.subscribeOn(Schedulers.from(Executors.newSingleThreadExecutor()))
使用具有多个线程的调度程序将无法保护线程安全。