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.