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