Отличия Schedulers от Schedulers.computation() в RxJava?
Schedulers.computation( ) — это scheduler, предназначенный для выполнения вычислительной работы. Он основан на ограниченном числе потоков, по умолчанию равном количеству потоков процессора вашего компьютера. Каждая задача, которая поступает на этот scheduler помещается в очередь задач, каждый новый освободившийся поток берет первую задачу из очереди.
Schedulers.io() — предназначен для работы, связанной с вводом-выводом, такой как например запрос к серверу(да и в целом любые блокирующие I/O операции), этот scheduler основан на пуле потоков, способном расти когда это необходимо. Ключевым его отличием от computation() является то, что он не помещает каждую поступившую задачу в очередь, он выделяет под каждую задачу отдельный поток из пула.
Если же в пуле потоков нет свободного, то он создает новый поток и добавляет его в пул. Таким образом и способен расти пул потоков Schedulers.io(). Но тут стоит быть аккуратным, потому что пул способен только расти, он не будет уменьшаться, и поэтому будет занимать место в памяти на протяжении всей работы программы.
Peer-to-peer собеседования
AI Sprints — обучение профессиям с ИИ
Практика собеседований с менторами и другими студентами. Реальные вопросы по Kotlin, Android и Backend
- Живые собеседования: практикуйте интервью с менторами и коллегами-студентами
- Реальные вопросы: база вопросов по Kotlin, Android, Backend и QA
- Фидбек: обратная связь после каждого собеседования — знаете, что улучшить
AI Challenge — собери чат-бота за 5 дней
Бесплатный марафон по AI-инжинирингу. Cursor + OpenAI, 60 минут в день — без опыта в программировании. К пятнице у вас будет рабочий чат-бот с памятью в браузере.
- Практика с первого дня, без теории «в стол»
- Готовый проект в портфолио к концу недели
- Старт в любой день — учитесь в своём темпе