Middle
Jak działają operacje atomowe?
sobes.tech AI
Odpowiedź od AI
Operacje atomowe to operacje, które są wykonywane w całości lub wcale, bez widocznych stanów pośrednich dla innych wątków.
W Go pakiet sync/atomic zapewnia funkcje do wykonywania takich operacji na zmiennych (np. AddInt32, CompareAndSwapInt64). Pozwala to bezpiecznie zmieniać wartości w środowisku współbieżnym bez użycia mutexów.
Przykład:
import (
"fmt"
"sync/atomic"
)
func main() {
var counter int32 = 0
atomic.AddInt32(&counter, 1) // atomowe zwiększenie o 1
fmt.Println(counter) // 1
}
Atomiczność gwarantuje, że operacja nie zostanie przerwana, a inne goroutine zobaczą albo starą, albo nową wartość, ale nie pośrednią.