Middle
Mutex nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Mutex (müqəddəs müstəqillik) Go-da sinxronizasiya mexanizmidir və ümumi resurslara, məsələn, dəyişənlərə və ya məlumat strukturlarına eyni vaxtda bir neçə goroutine-nin girişini qarşısını alır. Mutex hər zaman yalnız bir goroutine-in kilidi tutmasına və kritik kod bölməsini icra etməsinə imkan verir.
Go-da sync.Mutex istifadə nümunəsi:
import (
"fmt"
"sync"
)
func main() {
var mu sync.Mutex
counter := 0
increment := func() {
mu.Lock() // kilidi əldə et
defer mu.Unlock() // kilidi azad et
counter++
}
var wg sync.WaitGroup
for i := 0; i < 1000; i++ {
wg.Add(1)
go func() {
defer wg.Done()
increment()
}()
}
wg.Wait()
fmt.Println("Counter:", counter)
}
Mutex olmadan, nəticə düzgün olmaya bilər, çünki yarış şəraiti yaranır.