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

时间:2015-08-03 19:59:47

标签: java multithreading rx-java

我是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);

1 个答案:

答案 0 :(得分:2)

位于here的Rx Java文档的“Scheduler”部分很好地回答了这个问题。我不会总结这里丰富的信息就足以说明while(1): prompt = input("Code:") if prompt == "80803": ec80803 += 1 print (ec80803) 的等价物是让你的Observable级联运算符中的运算符在特定的调度程序上运行。

特别是,您可以使用Schedulers.from(AsyncTask.THREAD_POOL_EXECUTOR)方法在特定asyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);上执行运算符。