Sobes.tech
Middle

Kā darbojas atomu operācijas?

sobes.tech AI

Atbilde no AI

Atomās operācijas ir operācijas, kas tiek veiktas pilnībā vai vispār netiek veiktas, bez starpposma stāvokļiem, kas ir redzami citiem pavedieniem.

Go paketē sync/atomic ir pieejamas funkcijas šādu operāciju veikšanai uz mainīgajiem (piemēram, AddInt32, CompareAndSwapInt64). Tas ļauj droši mainīt vērtības konkurējošā vidē bez mutexu izmantošanas.

Piemērs:

import (
    "fmt"
    "sync/atomic"
)

func main() {
    var counter int32 = 0
    atomic.AddInt32(&counter, 1) // atomisks palielinājums par 1
    fmt.Println(counter) // 1
}

Atomiskums nodrošina, ka operācija netiks pārtraukta, un citi pavedieni redzēs vai nu veco, vai jauno vērtību, bet ne starpposma.