Junior — Middle
¿Qué tipos de operaciones atómicas en Swift conoces?
sobes.tech AI
Respuesta de la IA
En Swift, las operaciones atómicas generalmente están relacionadas con el acceso seguro a recursos compartidos en entornos multihilo. El lenguaje en sí no proporciona primitivas atómicas integradas, pero se pueden usar:
- DispatchQueue con sincronización mediante
syncoasyncpara acceso secuencial. - Funciones OSAtomic (obsoletas, no recomendadas).
- stdatomic.h de C11 para operaciones atómicas a nivel de C.
- NSLock, NSRecursiveLock y otros objetos de bloqueo para proteger secciones críticas.
- En Swift 5.5+ se puede usar
@Sendableyactorpara trabajar de forma segura con el estado.
Ejemplo de incremento atómico usando 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 }
}
}
De esta forma, las operaciones atómicas en Swift se implementan mediante sincronización y bloqueo, no mediante primitivas atómicas integradas.