Middle
Čo je to Mutex?
sobes.tech AI
Odpoveď od AI
Mutex (medsebojna izključitev) je mehanizem za sinhronizacijo v Go, ki se uporablja za preprečevanje sočasnega dostopa več gorutin do skupnih virov, kot so spremenljivke ali podatkovne strukture. Mutex zagotavlja, da lahko v vsakem trenutku samo ena gorutina poseduje zaklep in izvaja kritično sekcijo kode.
Primer uporabe sync.Mutex v Go:
import (
"fmt"
"sync"
)
func main() {
var mu sync.Mutex
števec := 0
povečevanje := func() {
mu.Lock() // pridobitev zaklepa
defer mu.Unlock() // sprostitev zaklepa
števec++
}
var wg sync.WaitGroup
for i := 0; i < 1000; i++ {
wg.Add(1)
go func() {
defer wg.Done()
povečevanje()
}()
}
wg.Wait()
fmt.Println("Števec:", števec)
}
Brez Mutex-a je lahko rezultat napačen zaradi tekmovalnih pogojev.