Middle
Mutex nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Mutex (karşılıklı dışlama) Go'da senkronizasyon mekanizmasıdır ve birden fazla goroutine'un ortak kaynaklara, örneğin değişkenlere veya veri yapılarına eşzamanlı erişimini engellemek için kullanılır. Mutex, her an yalnızca bir goroutine'un kilidi tutmasını ve kritik kod bölümünü çalıştırmasını sağlar.
Go'da sync.Mutex kullanımına örnek:
import (
"fmt"
"sync"
)
func main() {
var mu sync.Mutex
sayac := 0
artir := func() {
mu.Lock() // kilidi al
defer mu.Unlock() // kilidi serbest bırak
sayac++
}
var wg sync.WaitGroup
for i := 0; i < 1000; i++ {
wg.Add(1)
go func() {
defer wg.Done()
artir()
}()
}
wg.Wait()
fmt.Println("Sayaç:", sayac)
}
Mutex olmadan, yarış durumu nedeniyle sonuç hatalı olabilir.