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