Планировщики используются в многопоточной среде для работы с наблюдаемыми операторами.
Согласно Реактиву , Планировщик используется, чтобы запланировать, как цепочка операторов будет применяться к различным потокам.
По умолчанию Observable и цепочка операторов, к которой вы обращаетесь, будут выполнять свою работу и уведомлять своих наблюдателей в том же потоке, для которого вызывается метод Subscribe. Оператор SubscribeOn изменяет это поведение, указывая другой планировщик, с которым должен работать Observable. Оператор ObserveOn указывает другой планировщик, который Observable будет использовать для отправки уведомлений своим наблюдателям.
В RxJava доступны следующие типы планировщиков:
Schedulers.computation ()
Создает и возвращает планировщик, предназначенный для вычислительной работы. Количество потоков, которые будут запланированы, зависит от процессоров, присутствующих в системе. На каждый процессор допускается один поток. Лучше всего подходит для циклов обработки событий или операций обратного вызова.
Schedulers.io ()
Создает и возвращает планировщик, предназначенный для работы с IO. Пул потоков может расширяться по мере необходимости.
Schedulers.newThread ()
Создает и возвращает планировщик, который создает новый поток для каждой единицы работы.
Schedulers.trampoline ()
Создает и возвращает планировщик, который ставит в очередь работу в текущем потоке, который будет выполнен после завершения текущей работы.
Schedulers.from (java.util.concurrent.Executor executor)
Преобразует исполнителя в новый экземпляр планировщика.