Sobes.tech
Junior — Middle

Go'nun standart kütüphanesinde hangi tür karşılıklı dışlamalar (Mutex) uygulanmıştır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go'nun standart kütüphanesinde, temel bir karşılıklı dışlama türü uygulanmıştır: sync.Mutex. Bu, kritik kod bölümlerini eşzamanlı erişimden korumak için kilitleme ve kilit açma sağlayan basit bir mutex'tir.

Ayrıca, sync.RWMutex vardır — mutex'in genişletilmiş bir versiyonu, birden çok okuyucunun aynı anda kilit tutmasına izin verir, ancak yazma işlemi münhasıran engellenir.

sync.Mutex kullanımına örnek:

var mu sync.Mutex
var counter int

func increment() {
    mu.Lock()
    defer mu.Unlock()
    counter++
}

Ve sync.RWMutex ile bir örnek:

var rwMu sync.RWMutex
var data int

func readData() int {
    rwMu.RLock()
    defer rwMu.RUnlock()
    return data
}

func writeData(val int) {
    rwMu.Lock()
    defer rwMu.Unlock()
    data = val
}