在Retrofit
networking请求中使用Schedulers.newThread()
vs Schedulers.io()
什么好处。 我见过很多使用io()
例子,但我想明白为什么。
示例情况:
observable.onErrorResumeNext(refreshTokenAndRetry(observable)) .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread())...
VS
observable.onErrorResumeNext(refreshTokenAndRetry(observable)) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread())...
我看到的原因之一是 –
newThread()
为每个工作单元创build一个新的线程。 io()
将使用线程池
但是这个说法对应用程序有什么影响呢? 还有其他的方面呢?
你是正确的,使用Schedulers.io()
的好处在于它使用线程池,而Schedulers.newThread()
没有。
你应该考虑使用线程池的主要原因是他们维护了一些空闲并等待工作的预创build线程。 这意味着当你有工作要完成的时候,你不需要经历创build线程的开销。 一旦你的工作完成,该线程也可以重新用于未来的工作,而不是不断创build和销毁线程。
创build线程的开销可能会很大,所以最小化正在创build的线程数通常是很好的。
有关线程池的更多信息,我build议:
以上就是android开发分享使用Rxjava Schedulers.newThread()与Schedulers.io()进行改造相关内容,想了解更多android开发(异常处理)及android游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/addevelopment/515437.html