Junior — Middle
Welke soorten atomaire bewerkingen in Swift ken je?
sobes.tech AI
Antwoord van AI
In Swift worden atomaire operaties meestal geassocieerd met veilige toegang tot gedeelde bronnen in een multithread-omgeving. De taal zelf biedt geen ingebouwde atomaire primitieve bewerkingen, maar je kunt gebruiken:
- DispatchQueue met synchronisatie via
syncofasyncvoor sequentiële toegang. - OSAtomic functies (verouderd, niet aanbevolen).
- stdatomic.h uit C11 voor atomaire operaties op C-niveau.
- NSLock, NSRecursiveLock en andere lock-objecten om kritieke secties te beschermen.
- Vanaf Swift 5.5+ kun je
@Sendableenactorgebruiken voor veilige werking met de staat.
Voorbeeld van een atomair incrementeer met behulp van DispatchQueue:
class AtomicCounter {
private var value = 0
private let queue = DispatchQueue(label: "atomic.counter.queue")
func increment() {
queue.sync {
value += 1
}
}
func get() -> Int {
return queue.sync { value }
}
}
Op deze manier worden atomaire operaties in Swift geïmplementeerd via synchronisatie en blokkering, niet via ingebouwde atomaire primitieve bewerkingen.