Middle
Ako fungujú atómové operácie?
sobes.tech AI
Odpoveď od AI
Atómové operácie sú operácie, ktoré sa vykonávajú úplne alebo vôbec, bez viditeľných medzičasov pre iné vlákna.
V Go balíku sync/atomic sú k dispozícii funkcie na vykonávanie takýchto operácií nad premennými (napríklad AddInt32, CompareAndSwapInt64). To umožňuje bezpečne meniť hodnoty v konkurenčnom prostredí bez použitia mutexov.
Príklad:
import (
"fmt"
"sync/atomic"
)
func main() {
var counter int32 = 0
atomic.AddInt32(&counter, 1) // atomické zvýšenie o 1
fmt.Println(counter) // 1
}
Atomickosť zabezpečuje, že operácia nebude prerušená a iné gorutiny uvidia buď starú, alebo novú hodnotu, ale nie medzičas.