Sobes.tech
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.