Junior — Middle
Koje metode ili alate koristite za upravljanje sinhronizacijom niti i sprečavanje trkačkih uslova?
sobes.tech АИ
Одговор од АИ
Za upravljanje sinhronizacijom niti i sprečavanje trkačkih uslova u iOS-u koristim:
- GCD (Grand Central Dispatch) sa serijskim i konkurentnim redovima za kontrolu pristupa resursima.
- DispatchSemaphore za ograničavanje istovremenog pristupa.
- NSLock, NSRecursiveLock i druge primitivan za zaključavanje za zaštitu kritičnih sekcija.
- Korišćenje atomskih operacija i svojstava sa atributom @synchronized ili putem DispatchQueue.
Primer korišćenja serijske DispatchQueue za sinhronizaciju:
let serialQueue = DispatchQueue(label: "com.example.serialQueue")
deljeniResurs = 0
serialQueue.async {
deljeniResurs += 1
}
serialQueue.async {
print(deljeniResurs)
}