|
shylingNov 29, 2021
1
下面的例子举的不对。。。
他的意思应该是让最好用 scan 累加结果,而不是用外部的 adder 。。。但这个例子跑起来也没问题。 |
|
shylingNov 29, 2021
2
如果 adder 不线程安全,结果也是对的。onNext 是顺序调用的
|
|
3
|
|
4
我编写了这样的一段代码,虽然不加 volatile 结果是正确的,但是我仍然不确定 volatile 是否是必要的
 |
|
chihiro2014Nov 30, 2021
5
如果变量是全局的,那就需要加 volatile 。局部就不需要 @fanck0605
|
|
6
看了一下 JVM 的 happens-before 规则,onNext 前后好像都有内存屏障,毕竟一定用了锁或者 volatile 变量操作,所以 onNext 内访问的变量,无需加 volatile ,一定安全的。
|
|
aboutlongerDec 5, 2021
7
我猜这个契约是要开发者去遵守的,不是 rxjava 作出的保证。
即使这个资源只会被一个 Observer 访问,也是需要考虑线程安全的,因为一个 Observable 的 Scheduler 可以是一个线程池。 |