是否有一种方法可以使用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);

Rx Java文档中的"Scheduler"一节很好地回答了这个问题。我不会试图在这里总结这些丰富的信息,我只想说,asyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);的等效物是让你的Observable操作符级联中的操作符对特定的调度程序进行操作。

特别是,您可以使用Schedulers.from(AsyncTask.THREAD_POOL_EXECUTOR)方法在特定的java.util.concurrent.Executor上执行操作符。

相关内容

  • 没有找到相关文章

最新更新