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

Атомскост гарантује да операција неће бити прекинута и да ће други горутин видети или стару или нову вредност, али не међустаницу.