Junior — Middle
Môžete vysvetliť, čo sa rozumie pod pojmom Lock v kontexte viacvláknového spracovania alebo synchronizácie?
sobes.tech AI
Odpoveď od AI
Zámok (lock) je mechanizmus synchronizácie, ktorý sa používa na riadenie prístupu ku spoločným zdrojom v prostredí s viacerými vláknami. Zabezpečuje, že v danom momente môže vykonávať kritickú sekciu kódu iba jedno vlákno, čím predchádza súťažiam a zabezpečuje integritu dát.
Na iOS sa často používajú objekty ako NSLock, DispatchSemaphore alebo @synchronized.
Príklad použitia NSLock:
let lock = NSLock()
func criticalSection() {
lock.lock()
// kód, ktorý má byť vykonaný iba jedným vláknom
lock.unlock()
}
Bez zámku by mohli viaceré vlákna súčasne meniť údaje, čo by viedlo k chybám.