Junior — Middle
Bir mutex bağlamında kilit (Lock) nedir ve ne için kullanılır, açıklayınız.
sobes.tech yapay zeka
AI'dan gelen yanıt
Kilitleme (Lock), birden fazla akışın veya goroutine'in ortak bir kaynağa eşzamanlı erişimini engellemek için kullanılan bir senkronizasyon mekanizmasıdır; böylece yarış durumu önlenir ve verilerin doğruluğu sağlanır.
Mutex bağlamında, kilitleme, bir akışın (lock) bir mutex'i yakalaması durumunda, aynı mutex'i yakalamaya çalışan diğer akışların ilk akış serbest bırakana (unlock) kadar bekleyeceği anlamına gelir.
Go dilinde örnek:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock() // kilidi al
counter++ // kritik bölüm
mu.Unlock() // kilidi serbest bırak
}
Bu şekilde, kilitleme, belirli bir anda yalnızca bir akışın kritik kod bölümünü çalıştırmasını garanti eder.