2
我想知道在主题上调用subscribeOn()会产生什么后果。对主题使用subscribeOn()
我明白,(默认情况下)这不会改变什么线程项目发射,我只是好奇,如果它可能会导致一些其他的负面影响。
一般来说,调用subscribe()来自不同线程的Observable是不安全的?如果是这样,subscribeOn()不知何故使这个安全吗?
我想知道在主题上调用subscribeOn()会产生什么后果。对主题使用subscribeOn()
我明白,(默认情况下)这不会改变什么线程项目发射,我只是好奇,如果它可能会导致一些其他的负面影响。
一般来说,调用subscribe()来自不同线程的Observable是不安全的?如果是这样,subscribeOn()不知何故使这个安全吗?
来自不同线程的Subject
调用subscribe()
是安全的(请注意,从不同线程调用subject.doOnXXX
需要同步,如果需要请求澄清)。推广到所有Obserbles是不可能的,因为它很容易构建一个不是线程安全的(比如说可见性问题)。你是正确的,你可能使非线程安全的可观察线程安全的使用
.subscribeOn(Schedulers.from(Executors.newSingleThreadExecutor()))
使用调度与多个线程不会保护你的线程安全的条款。