java 代码并行执行_RxJava和观察者代码的并行执行

小编典典

RxJava在异步/多线程方面经常被误解。多线程操作的编码很简单,但是了解抽象是另一回事。

关于RxJava的一个常见问题是如何实现并行化,或如何从Observable同时发出多个项目。当然,此定义违反了Observable

Contract,该协议规定onNext()必须被顺序调用,并且一次不能由多个线程同时调用。

要实现并行性,您需要多个Observable。

这在一个线程中运行:

Observable vals = Observable.range(1,10);

vals.subscribeOn(Schedulers.computation())

.map(i -> intenseCalculation(i))

.subscribe(val -> System.out.println("Subscriber received "

+ val + " on "

+ Thread.currentThread().getName()));

这在多个线程中运行:

Observable vals = Observable.range(1,10);

vals.flatMap(val -> Observable.just(val)

.subscribeOn(Schedulers.computation())

.map(i -> intenseCalculation(i))

).subscribe(val -> System.out.println(val));

2020-09-23

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值