Middle
Co je to Mutex?
sobes.tech AI
Odpověď od AI
Mutex (vzájemné vyloučení) je mechanismus synchronizace v Go, který se používá k zabránění současného přístupu více gorutin ke sdíleným zdrojům, například proměnným nebo datovým strukturám. Mutex zajišťuje, že v každém okamžiku může vlastnit zámek pouze jedna gorutina a vykonávat kritickou sekci kódu.
Příklad použití sync.Mutex v Go:
import (
"fmt"
"sync"
)
func main() {
var mu sync.Mutex
čítač := 0
inkrement := func() {
mu.Lock() // získání zámku
defer mu.Unlock() // uvolnění zámku
čítač++
}
var wg sync.WaitGroup
for i := 0; i < 1000; i++ {
wg.Add(1)
go func() {
defer wg.Done()
inkrement()
}()
}
wg.Wait()
fmt.Println("Čítač:", čítač)
}
Bez Mutex může být výsledek nesprávný kvůli závodním podmínkám.