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
}
Атомарността гарантира, че операцията няма да бъде прекъсната и други горутини ще видят или старото, или новото значение, но не междинното.