Sobes.tech
Junior — Middle

Ինչպե՞ս սինխրոնիզացնել ընդհանուր ռեսուրսի հասանելիությունը Map կառուցվածքի և Mutex մեխանիզմի միջոցով։

sobes.tech AI

Պատասխան AI-ից

Go լեզվում ընդհանուր Map կառուցվածքի մուտք գործելու սինխրոնիզացման համար սովորաբար օգտագործվում է մուտեքս (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-ում կարդալը կամ գրելն, մենք մուտքագրում ենք մուտեքսը, որպեսզի կանխենք մրցակցության պայմանները և ապահովենք ճիշտ աշխատանքը միաժամանակյա միջավայրում։