Sobes.tech
Middle — Middle+

Kako se vrši asinhroni rad strukture podataka Map?

sobes.tech АИ

Одговор од АИ

U Go, standardna struktura podataka map nije sigurna za istovremeni pristup iz više gorutina. Asinhroni (konkurentni) rad sa map zahteva dodatnu sinhronizaciju.

Za siguran rad sa map u konkurentnom okruženju obično se koriste:

  • Muteksi (sync.Mutex ili sync.RWMutex) — obavijaju operacije čitanja i pisanja u blokade kako bi se izbegle trke.
  • Paket sync.Map — specijalizovana, sigurna za niti implementacija mape, optimizovana za slučajeve sa velikim brojem gorutina i retkim promenama.

Primer sa sync.Map:

var m sync.Map

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

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

// Brisanje
m.Delete("key")

Na ovaj način, asinhroni rad sa map u Go se postiže ili putem eksplicitne sinhronizacije ili korišćenjem sigurnih struktura iz standardne biblioteke.