Sobes.tech
Junior — Middle

Kunt u uitleggen wat de term Lock betekent in de context van multithreading of synchronisatie?

sobes.tech AI

Antwoord van AI

Lock (vergrendeling) is een synchronisatie-mechanisme dat wordt gebruikt om de toegang tot gedeelde bronnen in een multithread-omgeving te beheren. Het garandeert dat op elk moment slechts één thread de kritieke sectie van de code kan uitvoeren, waardoor racecondities worden voorkomen en de gegevensintegriteit wordt gewaarborgd.

Op iOS worden hiervoor vaak objecten zoals NSLock, DispatchSemaphore of @synchronized gebruikt.

Voorbeeld van het gebruik van NSLock:

let lock = NSLock()

func criticalSection() {
    lock.lock()
    // code die door slechts één thread moet worden uitgevoerd
    lock.unlock()
}

Zonder lock konden meerdere threads gelijktijdig gegevens wijzigen, wat tot fouten zou leiden.