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