Sobes.tech
Middle

Atom əməliyyatları necə işləyir?

sobes.tech Süni İntellekt

AI-dan cavab

Atom əməliyyatlar tam və ya ümumiyyətlə yerinə yetirilmir, digər axınlar üçün görünən ara vəziyyətlər olmadan.

Go-da, sync/atomic paketi bu cür əməliyyatları dəyişənlər üzərində həyata keçirmək üçün funksiyalar təqdim edir (məsələn, AddInt32, CompareAndSwapInt64). Bu, mutexlər istifadə etmədən çoxlu mühitdə dəyərləri təhlükəsiz şəkildə dəyişməyə imkan verir.

Nümunə:

import (
    "fmt"
    "sync/atomic"
)

func main() {
    var counter int32 = 0
    atomic.AddInt32(&counter, 1) // atomik artırma 1-ə
    fmt.Println(counter) // 1
}

Atomiklik əməliyyatın kəsilməməsini və digər goroutine-lərin ya köhnə, ya da yeni dəyəri görməsini təmin edir, aralıq dəyəri yox.