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ų.