gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 03:19:03 24 4
gpt4 key购买 nike

我是 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 文档的“调度程序”部分很好地回答了这个问题,位于 here 。我不会尝试总结这里的大量信息,足以说明 asyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); 的等价物是让您的 Observable 运算符级联中的运算符在特定调度程序上运行.

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

关于java - 有没有办法使用 RxJava 让方法在多个线程上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31795761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com