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