Retrofit
ağ isteğinde Schedulers.newThread()
vs Schedulers.io()
kullanmanın yararları nelerdir. io()
'u kullanan birçok örnek gördüm, ama nedenini anlamak istiyorum.Rxjava Schedulers.newThread ile Retrofit() vs Schedulers.io()
Örnek durum:
observable.onErrorResumeNext(refreshTokenAndRetry(observable))
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())...
gördüğüm nedenlerinden
observable.onErrorResumeNext(refreshTokenAndRetry(observable))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())...
biri
vs olduğunu -newThread()
işin her birim için yeni bir iş parçacığı oluşturur. io()
bir iş parçacığı havuzu kullanacaktır
Ancak bu argümanın uygulamadaki etkisi nedir? Ve diğer yönleri nelerdir?
bir dayandırılmıştır Scheduler.io() hakkında bir yorum ekleyerek değerinde olabilir Bazı kullanım durumları için uygun olmayan sınırsız iş parçacığı havuzu. Bkz. Http://stackoverflow.com/questions/31276164/rxjava-schedulers-use-cases –
@DaveMoten Kullanım örnekleri, "Schedulers.io" ile iş parçacığı havuzu için uygun değildir? –
'Schedulers.io()' ile çok fazla eşzamanlı çalışmanız varsa, OS i/o limitlerine çarpabilirsiniz (örneğin, açık dosyaların maksimum sayısı, güvenilirlik amaçları için açık kalabilecek maksimum tcp bağlantı sayısı bertaraf edildikten sonra bile bir süre için. Her yeni iş parçacığı da azami önemsiz bir RAM miktarı gerektirir (> 512K, ancak 1M'de çalışır), böylece RAM'iniz bitmiş olur. –