Карточка Middle Корутины и structured concurrency обновлено
Правила structured concurrency
Вопрос
Какие три правила дают structured concurrency?
Попробуйте сами
Ответьте про себя или вслух, потом откройте ответ и сверьтесь.
Показать ответ и разбор
Коротко
1) Родитель ждёт завершения всех детей. 2) Отмена родителя отменяет всех детей.
Ответ
- Родитель ждёт завершения всех детей. 2) Отмена родителя отменяет всех детей. 3) Ошибка ребёнка (кроме
CancellationException) отменяет родителя и остальных детей (в обычномJob;SupervisorJobэто меняет). Итог: корутины не теряются, их жизнь ограничена scope.
Разбор
- Родитель ждёт завершения всех детей. 2) Отмена родителя отменяет всех детей. 3) Ошибка ребёнка (кроме
CancellationException) отменяет родителя и остальных детей (в обычномJob;SupervisorJobэто меняет). Итог: корутины не теряются, их жизнь ограничена scope.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Ещё по теме «Корутины и structured concurrency»
- Последовательно или параллельно
- Проглоченный CancellationException
- Во что компилируется suspend-функция
- Почему цикл не отменяется
- Dispatchers.IO и Dispatchers.Default
- Диспетчеры корутин
- launch или async
- Порядок событий при ошибке в дочерней корутине