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.