Выбор ответа Senior Swift Concurrency обновлено

Изоляция по умолчанию в Swift 6.2

Вопрос

Что делает настройка модуля Default Actor Isolation = MainActor, появившаяся в Swift 6.2?

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

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

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

Коротко

Правильный ответ: Код без аннотаций считается изолированным на MainActor. Для приложений, где почти весь код живёт на главном потоке, Swift 6.2 (SE-0466) позволил сделать изоляцию на MainActor поведением по умолчанию.

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

  1. Запрещает создавать собственные акторы в модуле
  2. Переносит выполнение всех функций модуля в фоновый пул
  3. Отключает проверки Sendable для всего модуля
  4. Код без аннотаций считается изолированным на MainActorправильный ответ

Разбор

Для приложений, где почти весь код живёт на главном потоке, Swift 6.2 (SE-0466) позволил сделать изоляцию на MainActor поведением по умолчанию. Это убирает множество предупреждений о Sendable, а конкурентность становится явной: nonisolated, @concurrent, свои акторы. Создавать акторы можно, проверки Sendable никуда не исчезают для того, что действительно уходит в другой домен.

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

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