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