> Какие диспетчеры бывают в Kotlin Coroutines (Kotlin, Android)

Уровень: senior · Роль: mobile · Категория: Технические вопросы

Компании: MTS, Совкомбанк

Стек: Kotlin, Android

> Пример ответа

В Kotlin Coroutines диспетчеры (Dispatchers) определяют, на каком пуле потоков или в каком контексте будет выполняться корутина. Основные виды:

  • Dispatchers.Default - используется для вычислительных задач (CPU-bound), работает с пулом потоков, размер которого равен количеству ядер процессора (минимум 2). Подходит для сортировки, обработки данных, сложных вычислений.
  • Dispatchers.IO - предназначен для операций ввода-вывода (I/O-bound), таких как чтение/запись файлов, работа с сетью или базами данных. Пул потоков может расширяться до 64 (или больше, в зависимости от конфигурации).
  • Dispatchers.Main - выполняет корутины в главном потоке (UI-потоке) Android. Используется для обновления интерфейса, обработки событий. В Android требует зависимости kotlinx-coroutines-android.
  • Dispatchers.Unconfined - не привязан к конкретному потоку; корутина запускается в текущем потоке, но может возобновиться в другом. Используется редко, в основном для тестов или специфических сценариев.

Также можно создавать кастомные диспетчеры через newSingleThreadContext() или newFixedThreadPoolContext(), но это не рекомендуется в production из-за риска утечек потоков.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью