В чём разница между Dispatchers.IO и Dispatchers.Default?

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

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

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

  • Dispatchers.Main — используется для выполнения корутин на главном (UI) потоке. Подходит для обновления UI в Android.
  • Dispatchers.IO — оптимизирован для операций ввода-вывода (чтение/запись файлов, сетевые запросы). Использует пул потоков, который может расширяться при необходимости.
  • Dispatchers.Default — используется для CPU-интенсивных задач (вычисления, обработка данных). Работает на пуле потоков, количество которых зависит от числа ядер процессора.
  • Dispatchers.Unconfined — запускает корутину в текущем потоке до первой приостановки, после чего продолжает в потоке, который возобновляет корутину. Используется редко, например, для тестирования.

Выбор диспетчера влияет на производительность и корректность работы приложения, особенно в Android, где операции с UI должны выполняться на главном потоке, а тяжелые задачи — в фоновом.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку