Что такое структурированная многопоточность (structured concurrency)?
Суть
Structured concurrency — принцип, при котором время жизни дочерних задач ограничено областью (scope), которая их создала. Родительская функция не может вернуться, пока все её дочерние задачи не завершились, не выбросили ошибку или не были отменены. Задачи образуют дерево, и по этому дереву автоматически распространяются отмена, ошибки и приоритет. В Swift структурированные конструкции — async let и withTaskGroup / withThrowingTaskGroup / withDiscardingTaskGroup. Неструктурированные — Task { } и Task.detached { }: их время жизни ни к чему не привязано.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep