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