Sobes.tech
Middle

Mutex деген эмне?

sobes.tech AI

AIден жооп

Mutex (карсы-кирешүү) — Go'до синхрондоштуруу механизми болуп саналат, ал бир нече горутиндардын жалпы ресурстарга, мисалы, өзгөрмөлөргө же маалымат структураларына бир убакта киришин алдын алат. Mutex ар бир учурда бир гана горутина блокировканы ээ болуп, критикалык бөлүмдү аткарууга мүмкүндүк берет.

Go'до sync.Mutex колдонуу мисалы:

import (
    "fmt"
    "sync"
)

func main() {
    var mu sync.Mutex
    эсептегич := 0

    көбөйтүү := func() {
        mu.Lock()           // блокировканы алуу
        defer mu.Unlock()   // блокировканы бошотуу
        эсептегич++
    }

    var wg sync.WaitGroup
    for i := 0; i < 1000; i++ {
        wg.Add(1)
        go func() {
            defer wg.Done()
            көбөйтүү()
        }()
    }
    wg.Wait()
    fmt.Println("Эсептегич:", эсептегич)
}

Mutex болбосо, натыйжа ката болушу мүмкүн, атаандаштык шарттарынын себебинен.