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-ები ან ძველი ან ახალი მნიშვნელობას იხილავენ, შუამავლური არა.