Вопрос проверяет понимание конкурентности в iOS, защиты общих данных и выбора правильного примитива синхронизации.
Короткий ответ
В GCD доступны очереди (serial/concurrent), DispatchSemaphore, DispatchGroup, DispatchWorkItem и barrier. Серийная очередь часто используется как “lock” для защиты состояния. Семофор ограничивает параллелизм и помогает дождаться ресурсов. Барьеры позволяют безопасно писать в общий ресурс на concurrent queue. Выбор зависит от задачи: защита данных, ожидание завершения, ограничение количества операций.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.