Выбор ответа Junior Swift Concurrency спрашивают часто обновлено

Что гарантирует actor

Вопрос

Что гарантирует actor для своего изменяемого состояния?

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

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

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

Коротко

Правильный ответ: Состояние трогает одна задача за раз; снаружи только через await. Актор изолирует состояние: его методы выполняются по одному (последовательный executor), поэтому гонок данных внутри нет.

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

  1. Состояние трогает одна задача за раз; снаружи только через awaitправильный ответ
  2. Методы актора всегда выполняются на главном потоке, как у @MainActor
  3. Состояние актора неизменяемо после инициализации, как у let
  4. Методы актора никогда не приостанавливаются на await внутри

Разбор

Актор изолирует состояние: его методы выполняются по одному (последовательный executor), поэтому гонок данных внутри нет. Снаружи вызов метода это потенциальная приостановка, отсюда await. Главный поток гарантирует только @MainActor. Состояние актора изменяемо, а методы могут приостанавливаться на await внутри, что приводит к реентерабельности.

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

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