Sobes.tech
Junior

Koji još načini sinhronizacije gorutina postoje u Go osim kanala?

sobes.tech АИ

Одговор од АИ

Pored kanala, u Go-u za sinhronizaciju gorutina mogu se koristiti:

  • sync.WaitGroup — omogućava čekanje na završetak grupe gorutina.
  • sync.Mutex — mutex za zaštitu zajedničkih resursa od istovremenog pristupa.
  • sync.RWMutex — mutex sa odeljkom za čitanje i pisanje.
  • sync.Cond — uslovna promenljiva za obaveštavanje gorutina o događaju.
  • atomarne operacije iz paketa sync/atomic — za atomarne operacije sa promenljivima bez blokada.

Primer korišćenja WaitGroup:

var wg sync.WaitGroup
wg.Add(1)
go func() {
    defer wg.Done()
    // rad gorutine
}()
wg.Wait() // čekamo da se sve gorutine završe