Middle
Wie funktionieren atomare Operationen?
sobes.tech KI
Antwort von AI
Atomare Operationen sind Operationen, die vollständig ausgeführt werden oder gar nicht, ohne sichtbare Zwischenzustände für andere Threads.
In Go stellt das Paket sync/atomic Funktionen bereit, um solche Operationen an Variablen durchzuführen (z.B. AddInt32, CompareAndSwapInt64). Dies ermöglicht es, Werte in einer konkurrierenden Umgebung sicher zu ändern, ohne Mutexes zu verwenden.
Beispiel:
import (
"fmt"
"sync/atomic"
)
func main() {
var counter int32 = 0
atomic.AddInt32(&counter, 1) // atomare Erhöhung um 1
fmt.Println(counter) // 1
}
Atomicität stellt sicher, dass die Operation nicht unterbrochen wird und andere Goroutines entweder den alten oder den neuen Wert sehen, aber keinen Zwischenwert.