Middle
Kas ir Mutex?
sobes.tech AI
Atbilde no AI
Mutex (savstarpēja izslēgšana) ir sinhronizācijas mehānisms Go valodā, kas tiek izmantots, lai novērstu vairākas gorutīnas vienlaicīgu piekļuvi kopīgiem resursiem, piemēram, mainīgajiem vai datu struktūrām. Mutex nodrošina, ka katrā brīdī tikai viena gorutina var piederēt bloķējumam un izpildīt kritisko koda sekciju.
Piemērs, kā izmantot sync.Mutex Go valodā:
import (
"fmt"
"sync"
)
func main() {
var mu sync.Mutex
skaitītājs := 0
palielināt := func() {
mu.Lock() // iegūt bloķējumu
defer mu.Unlock() // atbrīvot bloķējumu
skaitītājs++
}
var wg sync.WaitGroup
for i := 0; i < 1000; i++ {
wg.Add(1)
go func() {
defer wg.Done()
palielināt()
}()
}
wg.Wait()
fmt.Println("Skaitītājs:", skaitītājs)
}
Bez mutex rezultāts var būt nepareizs, jo ir sacensību apstākļi.