Junior — Middle
Көп агымдардан Mapка бир убакта жазуу учурунда коопсуздукту камсыз кылуу мүмкүнбү?
sobes.tech AI
AIден жооп
Goда стандарттуу карта (map) бир убакта бир нече горутинден жазуу үчүн коопсуз эмес. Эгер бир нече горутин бир убакта mapке жазып жатса жана синхрондоштуруу болбосо, бул паникага алып келет.
Коопсуздук үчүн:
- sync.Mutex же sync.RWMutex колдонуп, картага кирүүнү коргоо керек.
- Специализацияланган, көптөгөн иштетүүгө ылайыктуу, мисалы, sync.Map сыяктуу, колдонуу керек.
Мисал муутекс менен:
var mu sync.Mutex
var m = make(map[string]int)
func safeWrite(key string, value int) {
mu.Lock()
defer mu.Unlock()
m[key] = value
}
Же sync.Map колдонуу:
var m sync.Map
func safeWrite(key string, value int) {
m.Store(key, value)
}
Ошентип, бир убакта жазуу үчүн коопсуздук үчүн синхрондоштуруу керек.