在reverfit
网络请求中使用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()
不使用线程池。
您应该考虑使用线程池的主要原因是,它们维护了大量空闲并等待工作的预创建线程。这意味着当您有工作要做时,您不需要经历创建线程的开销。一旦您的工作完成,那个线程也可以被重新用于以后的工作,而不是不断地创建和销毁线程。
创建线程的成本可能很高,因此尽量减少您正在快速创建的线程数量通常是好的。
首先,如果我对Rxjava的理解有错,请告诉我。 既然我们已经使用API查询使用referfit过滤了数据,那么对已经获得的数据进行操作有什么需要 为什么在RXJava中使用客户接口对象?因此,我们将其用于观察者或onNext()的位置。 Rxjava是否也有助于检索目的,或者它只是对已经获得的数据进行操作?
根据这个问题,将创建无限数量的线程。在我的应用程序中,这是一个问题,因为我有数百个异步任务要完成。 注释中的建议是使用,这是合理的,但使用模式与不同: 使用,我可以在应用程序中重用相同的线程池,而Rx将为我正确调用。 使用,我必须使在应用程序中可用,并记住调用。 问题: 我可以调整的行为来使用有界线程池吗? 将贯穿到Rx应用程序,并确保正确执行的推荐方法是什么?
我在OkHttp和Cookies管理方面遇到问题。 我正在使用一个定制的OkHttpClient和一个CookieManager创建一个改装客户端。 然后,我有一个身份验证请求,如果我的登录良好,它会回答我一个身份验证cookie: 像这样使用它: 在这个请求的响应头中,我有这样一个: 设置Cookie:auth=someauthkey468tyyuy;路径=/;域=。我的网站。com 在请求之后
如何使用RxJava和Kotlin中的改型创建api调用的泛型类? 我的JAVA实现是:: 首先添加Gradle依赖项:(更新到最新版本(如果可用)) //用于改装 实现“com.squareup.reverfit2:reverfit:2.3.0” 实现“com.squareup.reverfit2:converter-gson:2.3.0” //对于拦截器实现“com.squareup.okht
我尝试在我的活动中注入修改,但我得到了空异常 这是AndroidApplication类
问题内容: 我正在尝试从文本中提取人名。 有人有推荐的方法吗? 这就是我尝试过的(下面的代码):我正在使用查找所有标记为人的东西,然后生成该人所有NNP部分的列表。我正在跳过只有一个NNP可以避免抓住一个姓氏的人。 我得到了不错的结果,但是想知道是否有更好的方法来解决这个问题。 码: 输出: 除了维珍银河,这都是有效的输出。当然,在本文中了解维珍银河不是人的名字是很困难的(也许是不可能的)部分。