Sobes.tech
Junior — Middle

Koje tehnike korišćenja blokada ili drugih mehanizama za sprečavanje istovremenog pristupa podacima poznaješ?

sobes.tech АИ

Одговор од АИ

Glavne tehnike za sprečavanje istovremenog pristupa podacima u Go:

  • Mutex (sync.Mutex): blokira kritičnu sekciju tako da samo jedan tok može raditi sa podacima.
var mu sync.Mutex
mu.Lock()
// rad sa zajedničkim podacima
mu.Unlock()
  • RWMutex (sync.RWMutex): omogućava više čitaoca da istovremeno čitaju podatke, ali blokira pisanje.

  • Kanali (channels): prenos podataka između gorutina, čime se izbegava direktan pristup zajedničkim podacima.

  • Atomic operacije (sync/atomic): za jednostavne operacije sa promenljivima bez potpune blokade.

  • sync.Once: za jednokratnu inicijalizaciju podataka.

Izbor mehanizma zavisi od zadatka: za jednostavno uzajamno isključivanje — Mutex, za razdvajanje čitanja i pisanja — RWMutex, za prenos poruka — kanali.