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