Выбор ответа Junior Swift Concurrency спрашивают часто обновлено
Что гарантирует actor
Вопрос
Что гарантирует actor для своего изменяемого состояния?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Состояние трогает одна задача за раз; снаружи только через await. Актор изолирует состояние: его методы выполняются по одному (последовательный executor), поэтому гонок данных внутри нет.
Варианты ответа
- Состояние трогает одна задача за раз; снаружи только через
awaitправильный ответ - Методы актора всегда выполняются на главном потоке, как у
@MainActor - Состояние актора неизменяемо после инициализации, как у
let - Методы актора никогда не приостанавливаются на
awaitвнутри
Разбор
Актор изолирует состояние: его методы выполняются по одному (последовательный executor), поэтому гонок данных внутри нет. Снаружи вызов метода это потенциальная приостановка, отсюда await. Главный поток гарантирует только @MainActor. Состояние актора изменяемо, а методы могут приостанавливаться на await внутри, что приводит к реентерабельности.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.