有没有办法使用 RxJava 在多个线程上使用方法 运行

Is there a way to have methods run on multiple threads using RxJava

我是 RxJava 的新手,我想弄清楚是否有等同于 运行 多个并行线程上的多个异步任务。

我理解 RxJava 等同于

AsyncTask asyncTask = new AsyncTask<String, Void, ObjectType>(){
    @Override
    protected ObjectType doInBackground(String... params) {
         return someMethod(params[0]);
    }

    @Override
    protected void onPostExecute(ObjectType objectType) {}
}

aynctask.execute();

Observable.just(string)
    .subscribeOn(Schedulers.io())
    .observeOn(AndroidSchedulers.mainThread())
    .map(this::someMethod)
    .subscribe(new Observer<ObjectType>() {
        @Override
        public void onCompleted() {}

        @Override
        public void onError(Throwable e) {}

        @Override
        public void onNext(ObjectType objectType) {}
    });

但是我如何在 RxJava 中实现等同于

asyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);

位于 here 的 Rx Java 文档的 "Scheduler" 部分很好地回答了这个问题。我不会尝试总结这里丰富的信息足以说明 asyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); 的等价物是让 Observable 操作符级联中的操作符在特定调度器上操作。

特别是,您可以使用 Schedulers.from(AsyncTask.THREAD_POOL_EXECUTOR) 方法在特定 java.util.concurrent.Executor.

上执行运算符