Junior — Middle
Чӣ гуна усул Wait истифода мешавад ва вазифаи асосии он дар барномасозӣ чист?
sobes.tech AI
Ҷавоб аз AI
Дар забони Go, усули Wait бештар бо навъи sync.WaitGroup истифода мешавад. Мақсади асосии он боздоштани иҷрои goroutine-и ҳозира то он даме аст, ки ҳисобкунаки гурӯҳи интизорӣ ба сифр расад. Ин имкон медиҳад, ки иҷрои чанд goroutine ҳамоҳанг карда шавад ва интизор шаванд, ки онҳо ба анҷом расанд.
Маслиҳати истифода:
var wg sync.WaitGroup
wg.Add(2) // интизорем, ки 2 goroutine ба анҷом расанд
go func() {
defer wg.Done()
// кори goroutine аввал
}()
go func() {
defer wg.Done()
// кори goroutine дуввум
}()
wg.Wait() // бозмедорад, то ҳарду goroutine `Done()`-ро даъват кунанд
// коди минбаъда идома меёбад
Ин тариқ, Wait роҳи қулай барои интизор шудан ба анҷоми чанд вазифаи параллелӣ медиҳад.