Sobes.tech
Middle

როგორ მუშაობს ატომური ოპერაციები?

sobes.tech AI

პასუხი AI-სგან

ატომური ოპერაციები — ეს ოპერაციებია, რომლებიც სრულად ხორციელდება ან საერთოდ არა, სხვა ნაკადებისთვის არ ჩანს შუამავლური მდგომარეობები.

Go-ში, sync/atomic პაკეტი უზრუნველყოფს ამგვარი ოპერაციების შესრულებას ცვლადებზე (მაგალითად, AddInt32, CompareAndSwapInt64). ეს საშუალებას აძლევს უსაფრთხოდ შეცვალოთ მნიშვნელობები კონკურენტულ გარემოში mutex-ების გამოყენების გარეშე.

მაგალითი:

import (
    "fmt"
    "sync/atomic"
)

func main() {
    var counter int32 = 0
    atomic.AddInt32(&counter, 1) // ატომური გაზრდა 1-ით
    fmt.Println(counter) // 1
}

ატომურობა უზრუნველყოფს, რომ ოპერაცია არ გაწყდება და სხვა goroutine-ები ან ძველი ან ახალი მნიშვნელობას იხილავენ, შუამავლური არა.