Sobes.tech
Junior

Aké ďalšie spôsoby synchronizácie gorutín v Go okrem kanálov existujú?

sobes.tech AI

Odpoveď od AI

Okrem kanálov je v Go na synchronizáciu gorutín možné použiť:

  • sync.WaitGroup — umožňuje čakať na dokončenie skupiny gorutín.
  • sync.Mutex — mutex na ochranu zdieľaných zdrojov pred súčasným prístupom.
  • sync.RWMutex — mutex s rozdelením na čítanie a zápis.
  • sync.Cond — podmienková premenná na upozornenie gorutín o udalosti.
  • atomické operácie z balíčka sync/atomic — na atomické operácie s premennými bez zámkov.

Príklad použitia WaitGroup:

var wg sync.WaitGroup
wg.Add(1)
go func() {
    defer wg.Done()
    // práca gorutiny
}()
wg.Wait() // čakáme na dokončenie všetkých gorutín