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