Sobes.tech
Junior — Middle

Használta-e a szeminfór mechanizmust projektjeiben az erőforrások versenyének kezelésére?

sobes.tech MI

Válasz az MI-től

Igen, a szemafor mechanizmus gyakran alkalmazott az erőforrásokhoz való hozzáférés kezelésére több szálú alkalmazásokban. Például iOS-en a DispatchSemaphore használható a párhuzamosan futó feladatok számának korlátozására.

A DispatchSemaphore használatának példája:

let semaphore = DispatchSemaphore(value: 2) // engedélyezi 2 feladat egyidejű futtatását

DispatchQueue.global().async {
    semaphore.wait() // csökkenti a számlálót, vár, ha 0
    // kritikus szekció
    print("Feladat indult")
    sleep(2) // munka szimuláció
    print("Feladat befejeződött")
    semaphore.signal() // növeli a számlálót
}

Ez a megközelítés segít elkerülni a versenyhelyzeteket és ellenőrizni a konkurenciát, amikor korlátozott erőforrásokkal dolgozunk, például adatbázis hozzáférés vagy hálózati kérések esetén.