Sobes.tech
Junior — Middle

Map түзүмү жана Mutex механизми аркылуу жалпы ресурска кирүүнү кантип синхрондоштурууга болот?

sobes.tech AI

AIден жооп

Go тилинде жалпы Map структурасына кирүүнү синхрондоштуруу үчүн көбүнесе mutex (sync.Mutex) колдонулат, анткени map көптөгөн иштөө шарттарына туруштук бере албайт.

Мисал:

import (
    "sync"
)

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

func writeToMap(key string, value int) {
    mu.Lock()           // кирүүнү бөгөттөйт
    sharedMap[key] = value
    mu.Unlock()         // ачат
}

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

Мындай жол менен, mapке окуу же жазуу алдында mutexти бөгөттөйбүз, бул жарыш шарттарын алдын алууга жана бир убакта иштөө шартында туура иштешти камсыз кылууга жардам берет.