Как ты понимаешь термин structured concurrency в Swift? Task.detached подходит под это понятие?

Structured concurrency связывает дочерние задачи со временем жизни области родителя. Task.detached не относится к ней; обычный Task {} тоже создаёт unstructured task.

Короткий ответ

Что ответить на собеседовании

Structured concurrency связывает дочерние задачи со временем жизни области родителя. Task.detached не относится к ней; обычный Task {} тоже создаёт unstructured task.

Подробный разбор

Ответ с пояснениями

Structured concurrency связывает дочерние задачи со временем жизни области родителя. Task.detached не относится к ней; обычный Task {} тоже создаёт unstructured task.

Структурированные варианты — async let и task group: область не завершается, пока её дочерние задачи не завершены. Отмена распространяется по правилам этой структуры, но остаётся кооперативной.

Task.detached имеет независимый жизненный цикл и не наследует автоматически actor isolation, task-local значения и приоритет окружающей задачи. Сохранить handle, дождаться результата и отменить её должен вызывающий код. Task {} может наследовать контекст исполнения, но это не превращает его в структурированную дочернюю задачу. Detached не нужен просто ради любого фонового сетевого вызова.

Источник: raw.githubusercontent.com.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее