Senior
Оё имкон дорад дар як харита аз гуруҳҳои гуногун ҳамзамон нависем? Чӣ мешавад?
sobes.tech AI
Ҷавоб аз AI
В языке Go небезопасно одновременно писать в одну карту из разных горутин без дополнительной синхронизации. Стандартная карта не является потокобезопасной, и одновременные операции записи могут привести к панике (runtime panic) или повреждению данных.
Чтобы безопасно использовать карту в конкурентной среде, можно:
- Использовать sync.Mutex или sync.RWMutex для защиты доступа к карте.
- Использовать sync.Map — специализированную потокобезопасную структуру данных для карты.
Пример с mutex:
var (
m = make(map[string]int)
mu sync.Mutex
)
func write(key string, value int) {
mu.Lock()
m[key] = value
mu.Unlock()
}
Без такой защиты программа может аварийно завершиться.