有没有办法使用 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
.
上执行运算符
我是 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
.