Sobes.tech
Middle

Kas yra Mutex?

sobes.tech AI

Atsakymas iš AI

Mutex (vienas kitą išskiriantis) yra sinchronizacijos mechanizmas Go kalboje, kuris naudojamas užkirsti kelią kelių gorutinių vienu metu prieigai prie bendrų išteklių, pavyzdžiui, kintamųjų ar duomenų struktūrų. Mutex užtikrina, kad kiekvienu momentu tik viena gorutina gali turėti užraktą ir vykdyti kritinę kodo sekciją.

Pavyzdys, kaip naudoti sync.Mutex Go kalboje:

import (
    "fmt"
    "sync"
)

func main() {
    var mu sync.Mutex
    skaitiklis := 0

    padidinti := func() {
        mu.Lock()           // įgyti užraktą
        defer mu.Unlock()   // paleisti užraktą
        skaitiklis++
    }

    var wg sync.WaitGroup
    for i := 0; i < 1000; i++ {
        wg.Add(1)
        go func() {
            defer wg.Done()
            padidinti()
        }()
    }
    wg.Wait()
    fmt.Println("Skaitiklis:", skaitiklis)
}

Be mutex, rezultatas gali būti netikslus dėl lenktynių sąlygų.