/ / Czy mogę zmienić zachowanie Schedulers.io () w RxJava? - java, rx-java, rx-java2

Czy mogę zmienić zachowanie Schedulers.io () w RxJava? - java, rx-java, rx-java2

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 poprawnie shutdown 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 tak shutdown prawidłowo?

Odpowiedzi:

0 dla odpowiedzi № 1

W 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.