Какие основные механизмы для синхронизации потоков ты знаешь?
Answer from AI
sobes.tech AI
В iOS для синхронизации потоков (параллельного выполнения кода) используются несколько основных механизмов:
-
GCD (Grand Central Dispatch) — высокоуровневый API для управления очередями задач. Позволяет выполнять задачи асинхронно или синхронно на различных очередях (serial, concurrent).
-
NSOperation и NSOperationQueue — объектно-ориентированный способ управления операциями, с возможностью установки зависимостей между ними.
-
Locks (NSLock, pthread_mutex) — примитивы блокировки для защиты критических секций.
-
Dispatch Semaphores — семафоры для управления доступом к ресурсам.
-
@synchronized — синтаксический сахар для блокировки кода в Objective-C.
Пример использования GCD для синхронного выполнения на главной очереди:
DispatchQueue.main.sync {
// Код, который должен выполниться на главном потоке
}
Для защиты данных от одновременного доступа часто используют блокировки или последовательное выполнение задач на serial queue.