RxJava - Schedulers
Schedulers são usados em ambiente multi-threading para trabalhar com operadores Observable.
Conforme Reactive, Scheduler são usados para agendar como a cadeia de operadores se aplicará a diferentes threads.
Por padrão, um Observable e a cadeia de operadores que você aplica a ele farão seu trabalho e notificarão seus observadores no mesmo thread em que seu método Subscribe é chamado. O operador SubscribeOn altera esse comportamento especificando um Scheduler diferente no qual o Observable deve operar. O operador ObserveOn especifica um Scheduler diferente que o Observable usará para enviar notificações a seus observadores.
Existem seguintes tipos de Schedulers disponíveis no RxJava -
Sr. Não. | Programador e descrição |
---|---|
1 | Schedulers.computation() Cria e retorna um Scheduler destinado ao trabalho computacional. A contagem de threads a serem agendados depende das CPUs presentes no sistema. Um thread é permitido por CPU. Melhor para loops de eventos ou operações de retorno de chamada. |
2 | Schedulers.io() Cria e retorna um Scheduler destinado ao trabalho vinculado ao IO. O pool de threads pode ser estendido conforme necessário. |
3 | Schedulers.newThread() Cria e retorna um Scheduler que cria um novo Thread para cada unidade de trabalho. |
4 | Schedulers.trampoline() Cria e retorna um Scheduler que enfileira o trabalho no thread atual para ser executado após a conclusão do trabalho atual. |
4 | Schedulers.from(java.util.concurrent.Executor executor) Converte um Executor em uma nova instância do Scheduler. |