Junior — Middle
Môžete vysvetliť princíp fungovania atómových operácií v programovaní?
sobes.tech AI
Odpoveď od AI
Atómové operácie sú operácie, ktoré sa vykonajú úplne alebo vôbec, bez možnosti prerušenia inými vláknami. V kontexte viacvláknového programovania je to dôležité na prevenciu súťažných podmienok.
V Go sa pre atómové operácie používa balík sync/atomic. Poskytuje funkcie na bezpečnú zmenu premenných primitívnych typov (napríklad int32, int64, uint32, uint64, uintptr), ktoré zaručujú, že operácie čítania, zápisu a zmeny budú vykonané atómovo.
Príklad:
import (
"fmt"
"sync/atomic"
)
func main() {
var counter int64 = 0
atomic.AddInt64(&counter, 1) // atómovo zvyšuje čítač
fmt.Println(atomic.LoadInt64(&counter)) // atómovo číta hodnotu
}
Týmto spôsobom atómové operácie umožňujú vyhnúť sa použitiu ťažkých zámkov (mutex) pre jednoduché operácie, čím zvyšujú výkon a bezpečnosť v konkurenčných programoch.