Junior — Middle
Go dilinde Mutex kullanarak karşılıklı dışlama mekanizması nasıl uygulanır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde, karşılıklı dışlama (mutex) uygulamak için sync.Mutex tipi kullanılır. Bu, kritik kod bölümlerinin birden fazla goroutine tarafından eşzamanlı erişimden korunmasını sağlar ve yarış durumlarını önler.
Ana işlemler:
Lock()— mutex'i kilitler, diğer goroutinelerin erişimini engeller.Unlock()— mutex'in kilidini açar, diğer goroutinelerin devam etmesine izin verir.
Kullanım örneği:
package main
import (
"fmt"
"sync"
)
func main() {
var mu sync.Mutex
counter := 0
mu.Lock() // Mutex'i kilitler
counter++
fmt.Println("Sayaç:", counter)
mu.Unlock() // Mutex'in kilidini açar
}
Çok iş parçacıklı ortamda, mutex, sadece bir goroutine'in Lock() ve Unlock() arasındaki kodu aynı anda çalıştırmasını garanti eder, böylece paylaşılan verilerin yanlışlıkla değiştirilmesini önler.