Junior — Middle
Кадом намудҳои амалҳои атомиро дар Swift мешиносӣ?
sobes.tech AI
Ҷавоб аз AI
Дар Swift, амалҳои атомӣ одатан бо дастрасии бехатари ба захираҳои мубодилашаванда дар муҳити бисёрсӯзишворӣ алоқаманданд. Забон худи он primitives атомиро дарбар намегирад, аммо метавонанд истифода шаванд:
- DispatchQueue бо ҳамоҳангсозӣ тавассути
syncёasyncбарои дастрасии пайдарпай. - Функсияҳои OSAtomic (кироншуда, тавсия намешавад).
- stdatomic.h аз C11 барои амалҳои атомӣ дар сатҳи C.
- NSLock, NSRecursiveLock ва дигар объектҳои бастани барои ҳимояи қисмҳои критикӣ.
- Аз Swift 5.5+ метавон истифода бурд
@Sendableваactorбарои кор бо ҳолат бехатар.
Масалан, барои афзоиши атомӣ бо истифода аз 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 }
}
}
Бинобар ин, амалҳои атомӣ дар Swift тавассути ҳамоҳангсозӣ ва бастан амалӣ мешаванд, на тавассути primitives атомӣ дарбаргирифташуда.