thread subscribeon schedulers observeon mainthread androidschedulers android retrofit rx-java rx-android

android - subscribeon - Adaptación con Rxjava Schedulers.newThread() vs Schedulers.io()



import rx android schedulers androidschedulers (1)

¿Cuáles son los beneficios de usar Schedulers.newThread() vs Schedulers.io() en la solicitud de red Retrofit ? He visto muchos ejemplos que usan io() , pero quiero entender por qué.

Situación de ejemplo:

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

vs

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

Una de las razones que he visto es:

newThread() crea un nuevo hilo para cada unidad de trabajo. io() usará un grupo de subprocesos

Pero, ¿cuál es la influencia de ese argumento en la aplicación? ¿Y qué otros aspectos hay?


Tiene razón en que el beneficio de usar Schedulers.io() radica en el hecho de que usa un grupo de subprocesos, mientras que Schedulers.newThread() no.

La razón principal por la que debe considerar el uso de grupos de subprocesos es que mantienen una cantidad de subprocesos creados previamente que están inactivos y esperando trabajo. Esto significa que cuando tiene trabajo por hacer, no necesita pasar por encima de la creación de un hilo. Una vez que haya terminado su trabajo, ese hilo también se puede reutilizar para trabajos futuros en lugar de crear y destruir hilos constantemente.

Crear hilos puede ser costoso, por lo que minimizar el número de hilos que está creando sobre la marcha es generalmente bueno.

Para obtener más información sobre grupos de subprocesos, recomiendo: