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
}

Атомикӣ кафолат медиҳад, ки оператсия қатъ намешавад ва дигар ҷараёнҳо ё арзиши кӯҳна ё навро мебинанд, на байниҳамдигарӣ.