Назад к вопросам
Junior — Middle
64
Можете объяснить, для чего используется класс NSLock в разработке на Objective-C?
Компании, где спрашивали
GreenData
Ответ от нейросети
sobes.tech AI
Класс NSLock в Objective-C используется для реализации взаимного исключения (mutex), то есть для синхронизации доступа к общим ресурсам между потоками. Это предотвращает состояние гонки, когда несколько потоков одновременно пытаются изменить одни и те же данные.
Пример использования NSLock:
NSLock *lock = [[NSLock alloc] init];
// В одном из потоков
[lock lock];
// Критическая секция: безопасный доступ к общему ресурсу
// ...
[lock unlock];
NSLock блокирует поток при вызове lock, если другой поток уже удерживает блокировку, и разблокирует при вызове unlock. Это простой и эффективный способ обеспечить потокобезопасность в многопоточных приложениях на iOS/macOS.