Junior — Middle
Můžete vysvětlit, k čemu slouží třída NSLock v vývoji v Objective-C?
sobes.tech AI
Odpověď od AI
Třída NSLock v Objective-C se používá k implementaci vzájemného vyloučení (mutex), tj. ke synchronizaci přístupu ke sdíleným zdrojům mezi vlákny. Tím se předchází závodním podmínkám, když se více vláken snaží současně měnit stejné údaje.
Příklad použití NSLock:
NSLock *lock = [[NSLock alloc] init];
// V jednom z vláken
[lock lock];
// Kritická sekce: bezpečný přístup ke sdílenému zdroji
// ...
[lock unlock];
NSLock blokuje vlákno při volání lock, pokud jiná vlákno již drží zámek, a odemyká při volání unlock. Je to jednoduchý a efektivní způsob, jak zajistit vlákno bezpečnost v vícevláknových aplikacích na iOS/macOS.