Junior — Middle
Môžete vysvetliť, na čo sa používa trieda NSLock v vývoji v Objective-C?
sobes.tech AI
Odpoveď od AI
Trieda NSLock v Objective-C sa používa na implementáciu vzájomného vylúčenia (mutex), teda na synchronizáciu prístupu ku spoločným zdrojom medzi vláknami. Tým sa zabraňuje podmienkam pretekania, keď viacero vlákien naraz sa snaží meniť tie isté údaje.
Príklad použitia NSLock:
NSLock *lock = [[NSLock alloc] init];
// V jednom z vlákien
[lock lock];
// Kritická sekcia: bezpečný prístup ku spoločnému zdroju
// ...
[lock unlock];
NSLock blokuje vlákno pri volaní lock, ak iné vlákno už drží zámok, a odblokuje ho pri volaní unlock. Je to jednoduchý a efektívny spôsob, ako zabezpečiť bezpečnosť vlákien v viacvláknových aplikáciách na iOS/macOS.