Sobes.tech
Junior — Middle

Tudná magyarázni, hogy mit értünk Lock kifejezés alatt több szálú vagy szinkronizációs kontextusban?

sobes.tech MI

Válasz az MI-től

A zárolás (lock) egy szinkronizációs mechanizmus, amelyet a közös erőforrásokhoz való hozzáférés kezelésére használnak több szálas környezetben. Biztosítja, hogy egyszerre csak egy szál hajthassa végre a kód kritikus szakaszát, elkerülve a versenyhelyzeteket és biztosítva az adatok integritását.

Az iOS-en gyakran használnak olyan objektumokat, mint az NSLock, DispatchSemaphore vagy az @synchronized.

Az NSLock használatának példája:

let lock = NSLock()

func criticalSection() {
    lock.lock()
    // kód, amit csak egy szál hajthat végre
    lock.unlock()
}

Kizárás nélkül több szál egyidejűleg módosíthatná az adatokat, ami hibákhoz vezetne.