Junior — Middle
Map tuzilmasi va Mutex mexanizmi yordamida umumiy resursga kirishni qanday sinxronlashtirish mumkin?
sobes.tech AI
AIdan javob
Go tilida, umumiy Map tuzilmasiga kirishni sinxronlashtirish uchun odatda mutex (sync.Mutex) ishlatiladi, chunki map bir vaqtning o'zida xavfsiz emas.
Misol:
import (
"sync"
)
var (
mu sync.Mutex
sharedMap = make(map[string]int)
)
func writeToMap(key string, value int) {
mu.Lock() // kirishni bloklaydi
sharedMap[key] = value
mu.Unlock() // ochadi
}
func readFromMap(key string) (int, bool) {
mu.Lock()
val, ok := sharedMap[key]
mu.Unlock()
return val, ok
}
Shu tarzda, mapga o'qish yoki yozishdan oldin mutexni bloklash orqali raqobat shartlarini oldini olish va muvofiqlashtirilgan muhitda to'g'ri ishlashni ta'minlash mumkin.