Выбор ответа Middle Корутины и structured concurrency спрашивают часто обновлено

Отмена родительской корутины

Вопрос

Что произойдёт с дочерними корутинами при parentJob.cancel()?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Они будут отменены вместе с родителем. По правилам structured concurrency отмена распространяется сверху вниз: отменяется родитель, отменяются все его дети.

Варианты ответа

  1. Они продолжат работу до завершения
  2. Они станут корневыми корутинами в GlobalScope
  3. Отменится только последняя запущенная
  4. Они будут отменены вместе с родителемправильный ответ

Разбор

По правилам structured concurrency отмена распространяется сверху вниз: отменяется родитель, отменяются все его дети. Так закрытие экрана через viewModelScope останавливает все запросы этого экрана. Дети не «отвязываются» и не переходят в GlobalScope.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.