Sobes.tech
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()
}

Без такой защиты программа может аварийно завершиться.