gpt4 book ai didi

android - 使用 Rxjava Schedulers.newThread() 与 Schedulers.io() 进行改造

转载 作者:IT老高 更新时间:2023-10-28 13:08:56 25 4
gpt4 key购买 nike

Retrofit 网络请求中使用 Schedulers.newThread()Schedulers.io() 有什么好处。我见过很多使用 io() 的例子,但我想了解原因。

示例情况:

observable.onErrorResumeNext(refreshTokenAndRetry(observable))
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())...

observable.onErrorResumeNext(refreshTokenAndRetry(observable))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())...

我看到的原因之一是——

newThread() 为每个工作单元创建一个新线程。 io() 将使用线程池

但是该论点对应用程序有什么影响?还有哪些方面?

最佳答案

您是正确的,使用 Schedulers.io() 的好处在于它使用线程池,而 Schedulers.newThread() 没有。

您应该考虑使用线程池的主要原因是它们维护了许多预先创建的空闲并等待工作的线程。这意味着当你有工作要做时,你不需要经历创建线程的开销。完成工作后,该线程也可以重新用于 future 的工作,而不是不断创建和销毁线程。

创建线程的成本可能很高,因此尽量减少动态创建的线程数量通常是好的。

有关线程池的更多信息,我建议:

关于android - 使用 Rxjava Schedulers.newThread() 与 Schedulers.io() 进行改造,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33415881/

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