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'лер эски же жаңы маанини көрөт, аралык маанини эмес.