Według to pytanie, Schedulers.io()
utworzy nieograniczoną liczbę wątków. W mojej aplikacji jest to problem, ponieważ mam do wykonania setki asynchronicznych zadań.
Zaleceniem w komentarzach jest użycie Scheduler.from(Executors.newFixedThreadPool(n))
, co jest rozsądne, ale wzorzec użycia jest inny niż Schedulers.io()
:
- Z
Schedulers.io()
, Mogę ponownie użyć tej samej puli wątków w całej mojej aplikacji, a Rx zadzwoni poprawnieshutdown
dla mnie. - Z
Scheduler.from(Executors.newFixedThreadPool(n))
, Muszę zrobićScheduler
dostępne w mojej aplikacji i pamiętaj, aby zadzwonićshutdown
.
Pytania:
- Czy mogę po prostu zmodyfikować zachowanie
Schedulers.io()
użyć ograniczonej puli wątków? - Jaki jest zalecany sposób wątku a
Scheduler
poprzez aplikację Rx i upewnij się, że takshutdown
prawidłowo?
Odpowiedzi:
0 dla odpowiedzi № 1W przypadku RxJava możesz użyć RxJavaHooks.onIOScheduler
aby zwrócić Scheduler
tak jak Schedulers.io
. Ale nie możesz tego uniknąć IOScheduler
bądź kreatywny.
W przypadku RxJava2 możesz użyć RxJavaPlugins.setInitIoSchedulerHandler
zainicjować IOScheduler
przez Twój Scheduler
bezpośrednio.