Junior — Middle
Karşılıklı dışlama (Mutex) nedir ve nasıl çalıştığını açıklayabilir misin?
sobes.tech yapay zeka
AI'dan gelen yanıt
Mutual exclusion (Mutex), eşzamanlılığı sağlayan bir mekanizmadır ve belirli bir anda yalnızca bir goroutine'nin (iş parçacığının) belirli bir kaynağa veya kritik kod bölümüne erişmesini garanti eder.
Go'da bu amaçla sync.Mutex tipi kullanılır. Bir goroutine Lock() çağırdığında, mutex kilitlenir ve diğer goroutine'ler Lock() çağırmaya çalıştığında, mutex serbest bırakılana kadar beklerler (Unlock() ile).
Örnek:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock()
defer mu.Unlock()
counter++
}
Bu örnekte, increment fonksiyonu counter değerini güvenli bir şekilde artırır ve böylece birden fazla goroutine'nin aynı anda erişimini engeller.