Sobes.tech
Middle — Middle+

Cum se realizează munca asincronă a structurii de date Map?

sobes.tech AI

Răspuns de la AI

În Go, structura de date standard map nu este sigură pentru accesul concurent din mai multe goroutines. Lucrul asincron (concurent) cu map necesită sincronizare suplimentară.

Pentru a lucra în siguranță cu map într-un mediu concurent, se folosesc de obicei:

  • Mutexuri (sync.Mutex sau sync.RWMutex) — învelesc operațiile de citire și scriere în blocări pentru a evita condițiile de cursă.
  • Pachetul sync.Map — o implementare specializată și sigură pentru concurență a unui map, optimizată pentru cazuri cu multe goroutines și modificări rare.

Exemplu cu sync.Map:

var m sync.Map

// Scriere
m.Store("key", "value")

// Citire
if val, ok := m.Load("key"); ok {
    fmt.Println(val)
}

// Ștergere
m.Delete("key")

Astfel, lucrul asincron cu map în Go se realizează fie prin sincronizare explicită, fie prin utilizarea structurilor sigure pentru concurență din biblioteca standard.