Sobes.tech
Junior — Middle

Da li ste koristili mehanizam semafora u svojim projektima za upravljanje konkurencijom resursa?

sobes.tech АИ

Одговор од АИ

Da, mehanizam semafora često se koristi za upravljanje pristupom ograničenim resursima u višestrukim aplikacijama. Na primer, u iOS-u, može se koristiti DispatchSemaphore za ograničavanje broja istovremenih zadataka.

Primer korišćenja DispatchSemaphore:

let semaphore = DispatchSemaphore(value: 2) // dozvoljava 2 zadatka istovremeno

DispatchQueue.global().async {
    semaphore.wait() // smanjuje brojač, čeka ako je 0
    // kritična sekcija
    print("Zadatak je počeo")
    sleep(2) // simulacija rada
    print("Zadatak je završio")
    semaphore.signal() // povećava brojač
}

Ovaj pristup pomaže da se izbegnu uslovi trke i da se kontroliše konkurencija pri radu sa ograničenim resursima, na primer, pri pristupu bazi podataka ili mrežnim zahtevima.