gpt4 book ai didi

java - RxJava just() 计算线程

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

我很困惑。我有一个方法可以做一些长时间的工作(大约 5 秒)并返回一个 String 作为结果。我将该函数包装到一个 Observable smth 中,如下所示:

private Observable<String> getJobObservable() {
return Observable.just(doJob());
}

但即使使用 .subscribeOn(Schedulers.computation()).observeOn(Schedulers.computation()) 我的 doJob()方法在 mainThread 上计算但是,在我将 Observable.just() 更改为 Observable.fromCallable() 之后,一切正常。为什么 Observable.just() 对线程变化没有反应?

最佳答案

如果你写

return Observable.just(doJob());

相当于

Object o = doJob();
return Observable.just(o);

现在,如果您根本没有 Observable.just(o),那么 doJob() 在哪里执行?仅仅因为 doJob()o 被放在 just 的括号之间,并不意味着 的整个执行doJob 被推迟,这与您通过 fromCallable 确保它不同。

关于java - RxJava just() 计算线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45224332/

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