Выбор ответа Junior Корутины и structured concurrency спрашивают часто обновлено
Что делает withContext
Вопрос
Что делает withContext(Dispatchers.IO) { readFile() }?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Выполняет блок на IO, ждёт и возвращает результат. withContext это suspend-функция: она выполняет блок в указанном контексте, ждёт завершения и возвращает результат, после чего корутина продолжает в исходном диспетчере.
Варианты ответа
- Выполняет блок на
IO, ждёт и возвращает результатправильный ответ - Запускает новую независимую корутину и сразу возвращает
Job - Блокирует главный поток, пока файл читается
- Меняет диспетчер всего scope до его отмены
Разбор
withContext это suspend-функция: она выполняет блок в указанном контексте, ждёт завершения и возвращает результат, после чего корутина продолжает в исходном диспетчере. Новой независимой корутины, как у launch, нет. Главный поток не блокируется, корутина просто приостановлена. Контекст меняется только на время блока.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.