Sobes.tech
Middle

Как работят атомните операции?

sobes.tech AI

Отговор от AI

Атомарните операции са операции, които се изпълняват изцяло или изобщо не се изпълняват, без междинни състояния, видими за други нишки.

В Go пакетът sync/atomic предоставя функции за извършване на такива операции върху променливи (например, AddInt32, CompareAndSwapInt64). Това позволява безопасно промяна на стойности в конкурентна среда без използване на мьютекси.

Пример:

import (
    "fmt"
    "sync/atomic"
)

func main() {
    var counter int32 = 0
    atomic.AddInt32(&counter, 1) // атомарно увеличение с 1
    fmt.Println(counter) // 1
}

Атомарността гарантира, че операцията няма да бъде прекъсната и други горутини ще видят или старото, или новото значение, но не междинното.