如何在rxjava中并行执行n个操作

时间:2019-02-22 10:57:57

标签: android rx-java2

我有一个场景。我在不同的时间从不同的来源获取数据。我需要在后台线程上并行处理那些数据,并在主线程上获得结果。我想到了使用BehaviorSubject。但是我无法弄清楚如何并行执行操作并将结果返回到主线程。由于subscribeOnSubjects中没有任何作用,因此我将无法在后台线程中执行该操作。我是否缺少连接的东西?

2 个答案:

答案 0 :(得分:0)

您能尝试这样的事情吗?

Observable.merge(
                Observable.just(1, 2, 3).subscribeOn(Schedulers.io()),
                Observable.just("4", "5", "6").subscribeOn(Schedulers.io())
        )
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe();

答案 1 :(得分:0)

我建议看一下ParallelFlowable并尝试下面的示例

someFlowable
    .parallel(NUMBER_OF_THREADS)
    .runOn(scheduler)
    .doOnNext(this::doSomeWork)
    .sequential()
    .subscribe{ result -> ... }