Вопрос проверяет знание методов синхронизации доступа к общим ресурсам.
NSLock / os_unfair_lock.
Serial очередь.
DispatchSemaphore.
Атомарные операции (@Atomic).
1. NSLock:
let lock = NSLock()
lock.lock()
// Критическая секция
lock.unlock()2. Serial очередь:
let queue = DispatchQueue(label: "com.example.serial")
queue.sync { /* Безопасный доступ */ }3. DispatchSemaphore:
let semaphore = DispatchSemaphore(value: 1)
semaphore.wait()
// Критическая секция
semaphore.signal()Вывод:
Выбор метода зависит от контекста. Serial очереди — самый безопасный вариант.