Sobes.tech
Back to questions
Junior — Middle
71

Какие основные механизмы для синхронизации потоков ты знаешь?

Companies where asked
Doubletapp
Альфа-БанкАльфа-Банк
SelectySelecty
VK знакомстваVK знакомства

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.