Middle
Jak fungují atomové operace?
sobes.tech AI
Odpověď od AI
Atomové operace jsou operace, které jsou prováděny úplně nebo vůbec, bez viditelných mezistavů pro jiné vlákna.
V Go balíček sync/atomic poskytuje funkce pro provádění takových operací nad proměnnými (například AddInt32, CompareAndSwapInt64). To umožňuje bezpečně měnit hodnoty v konkurenčním prostředí bez použití mutexů.
Příklad:
import (
"fmt"
"sync/atomic"
)
func main() {
var counter int32 = 0
atomic.AddInt32(&counter, 1) // atomické zvýšení o 1
fmt.Println(counter) // 1
}
Atomicita zajišťuje, že operace nebude přerušena a ostatní gorutiny uvidí buď starou, nebo novou hodnotu, nikoli mezilehlou.