Выбор ответа Senior Swift Concurrency обновлено
Изоляция по умолчанию в Swift 6.2
Вопрос
Что делает настройка модуля Default Actor Isolation = MainActor, появившаяся в Swift 6.2?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Код без аннотаций считается изолированным на MainActor. Для приложений, где почти весь код живёт на главном потоке, Swift 6.2 (SE-0466) позволил сделать изоляцию на MainActor поведением по умолчанию.
Варианты ответа
- Запрещает создавать собственные акторы в модуле
- Переносит выполнение всех функций модуля в фоновый пул
- Отключает проверки Sendable для всего модуля
- Код без аннотаций считается изолированным на MainActorправильный ответ
Разбор
Для приложений, где почти весь код живёт на главном потоке, Swift 6.2 (SE-0466) позволил сделать изоляцию на MainActor поведением по умолчанию. Это убирает множество предупреждений о Sendable, а конкурентность становится явной: nonisolated, @concurrent, свои акторы. Создавать акторы можно, проверки Sendable никуда не исчезают для того, что действительно уходит в другой домен.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.