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
}