Junior — Middle
Kas olete kasutanud semafori mehhanismi oma projektides ressursside konkurentsi juhtimiseks?
sobes.tech AI
Vastus AI-lt
Jah, semafori mehhanism sageli kasutatakse piiratud ressursside juurdepääsu juhtimiseks mitme niidiga rakendustes. Näiteks iOS-is saab kasutada DispatchSemaphore, et piirata samaaegselt täidetavate ülesannete arvu.
DispatchSemaphore kasutamise näide:
let semaphore = DispatchSemaphore(value: 2) // lubab 2 ülesannet samaaegselt
DispatchQueue.global().async {
semaphore.wait() // vähendab loendurit, ootab, kui see on 0
// kriitiline sektsioon
print("Ülesanne algas")
sleep(2) // töö simulatsioon
print("Ülesanne lõppes")
semaphore.signal() // suurendab loendurit
}
See lähenemine aitab vältida võistlusolukordi ja kontrollida konkurentsi piiratud ressurssidega töötades, näiteks andmebaasi või võrgupäringute juurdepääsu korral.