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