Sobes.tech
Junior — Middle

Bir ortak kaynağa erişimi Map yapısı ve Mutex mekanizması kullanarak nasıl senkronize edersiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go dilinde, ortak bir Map yapısına erişimi senkronize etmek için genellikle bir mutex (sync.Mutex) kullanılır, çünkü map eşzamanlı güvenli değildir.

Örnek:

import (
    "sync"
)

var (
    mu sync.Mutex
    sharedMap = make(map[string]int)
)

func writeToMap(key string, value int) {
    mu.Lock()           // erişimi kilitler
    sharedMap[key] = value
    mu.Unlock()         // kilidi açar
}

func readFromMap(key string) (int, bool) {
    mu.Lock()
    val, ok := sharedMap[key]
    mu.Unlock()
    return val, ok
}

Bu şekilde, map'e okuma veya yazma işlemi öncesinde mutex kilitlenir, böylece yarış koşulları önlenir ve çoklu ortamda doğru çalışma sağlanır.