Middle
Cum funcționează operațiile atomice?
sobes.tech AI
Răspuns de la AI
Operațiile atomice sunt operații care sunt executate complet sau deloc, fără stări intermediare vizibile pentru alte fire de execuție.
În Go, pachetul sync/atomic oferă funcții pentru a realiza astfel de operații asupra variabilelor (de exemplu, AddInt32, CompareAndSwapInt64). Acest lucru permite modificarea în siguranță a valorilor într-un mediu concurent fără a folosi mutex-uri.
Exemplu:
import (
"fmt"
"sync/atomic"
)
func main() {
var counter int32 = 0
atomic.AddInt32(&counter, 1) // creștere atomică cu 1
fmt.Println(counter) // 1
}
Atomicitatea garantează că operația nu va fi întreruptă și că alte goroutines vor vedea fie valoarea veche, fie cea nouă, dar nu una intermediară.