Junior — Middle
Pode explicar o que se entende por operação atómica ao trabalhar com bases de dados ou em programação multithread?
sobes.tech IA
Resposta da IA
Uma operação atómica é uma operação que é executada totalmente ou não é executada, sem estados intermédios. Em bases de dados, isso significa que uma transação termina com sucesso e todas as alterações são confirmadas, ou em caso de erro, todas as alterações são revertidas, garantindo a integridade dos dados.
Na programação multithread, a atomicidade garante que a operação sobre recursos partilhados (por exemplo, incrementar uma variável) seja realizada como uma ação indivisível, prevenindo condições de corrida e inconsistências nos dados.
Exemplo de uma operação atómica em Swift usando uma propriedade atómica:
import Foundation
class Counter {
private let queue = DispatchQueue(label: "counter.queue")
private var _value: Int = 0
var value: Int {
return queue.sync { _value }
}
func increment() {
queue.sync {
_value += 1
}
}
}
Aqui, o incremento ocorre numa fila sincronizada, o que torna a operação atómica.