Sobes.tech
Junior — Middle

Heeft u het semafoormechanisme in uw projecten gebruikt om de concurrentie om bronnen te beheren?

sobes.tech AI

Antwoord van AI

Ja, het semafoormechanisme wordt vaak gebruikt om de toegang tot beperkte bronnen te beheren in multithreaded applicaties. Op iOS kan bijvoorbeeld DispatchSemaphore worden gebruikt om het aantal gelijktijdige taken te beperken.

Voorbeeld van gebruik van DispatchSemaphore:

let semaphore = DispatchSemaphore(value: 2) // staat toe dat 2 taken gelijktijdig worden uitgevoerd

DispatchQueue.global().async {
    semaphore.wait() // verlaagt de teller, wacht indien 0
    // kritieke sectie
    print("Taak gestart")
    sleep(2) // simulatie van werk
    print("Taak voltooid")
    semaphore.signal() // verhoogt de teller
}

Deze aanpak helpt racecondities te voorkomen en de competitie te controleren bij het werken met beperkte bronnen, bijvoorbeeld bij toegang tot een database of netwerkverzoeken.