Junior
Kādi citi gorutīnu sinhronizācijas veidi pastāv Go valodā, izņemot kanālus?
sobes.tech AI
Atbilde no AI
Papildus kanāliem, Go valodā gorutīnu sinhronizācijai var izmantot:
- sync.WaitGroup — ļauj gaidīt, līdz grupa gorutīnu pabeigs darbu.
- sync.Mutex — mutex, lai aizsargātu koplietotos resursus no vienlaicīgas piekļuves.
- sync.RWMutex — mutex ar sadalījumu lasīšanai un rakstīšanai.
- sync.Cond — nosacījuma mainīgais, lai paziņotu gorutīnām par notikumu.
- atomiskas operācijas no
sync/atomicpakotnes — atomiskas operācijas ar mainīgajiem bez bloķēšanas.
Piemērs, kā izmantot WaitGroup:
var wg sync.WaitGroup
wg.Add(1)
go func() {
defer wg.Done()
// gorutīnas darbs
}()
wg.Wait() // gaidām, līdz visas gorutīnas pabeigs darbu