Sobes.tech
Junior — Middle

Ümumi resursa giriş üçün Map strukturu və Mutex mexanizmi ilə necə sinxronizasiya etmək olar?

sobes.tech Süni İntellekt

AI-dan cavab

Go dilində, ümumi Map strukturuna girişləri sinxronlaşdırmaq üçün adətən mutex (sync.Mutex) istifadə olunur, çünki map çoxluq təhlükəsiz deyil.

Nümunə:

import (
    "sync"
)

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

func writeToMap(key string, value int) {
    mu.Lock()           // girişə kilid qoyur
    sharedMap[key] = value
    mu.Unlock()         // kilidi açır
}

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

Bu şəkildə, map-ə oxuma və ya yazma əməliyyatlarından əvvəl mutex kilidlənir, bu da yarış şəraitlərinin qarşısını alır və çoxlu mühitdə düzgün işləməni təmin edir.