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.