Middle
Како функционишу атомске операције?
sobes.tech АИ
Одговор од АИ
Атомске операције су операције које се извршавају у целости или уопште, без видљивих међустаница за друге нитеве.
У Go-у, пакет sync/atomic пружа функције за извођење таквих операција над променљивима (на пример, AddInt32, CompareAndSwapInt64). Ово омогућава безбедно мењање вредности у конкурентном окружењу без коришћења мјутексa.
Пример:
import (
"fmt"
"sync/atomic"
)
func main() {
var counter int32 = 0
atomic.AddInt32(&counter, 1) // атомско увећање за 1
fmt.Println(counter) // 1
}
Атомскост гарантује да операција неће бити прекинута и да ће други горутин видети или стару или нову вредност, али не међустаницу.