Sobes.tech
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.