Sobes.tech
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.