Sobes.tech
Middle — Senior

Ролии усул Wg.Wait дар ҳамоҳангсозии сӯрохиҳо чист?

sobes.tech AI

Ҷавоб аз AI

Методи Wg.Wait() аз пакети sync дар забони Go барои ҳамоҳангсозии чандин goroutine истифода мешавад. Он иҷрои goroutine-ро, ки даъват мекунад, то вақте ки ҳисобкунаки WaitGroup ба сифр нарасад, мепиндонад, яъне то ҳама goroutine-ҳое, ки тавассути Add() илова шудаанд, Done() нагуфта бошанд.

Масалан:

var wg sync.WaitGroup
wg.Add(2)

go func() {
    defer wg.Done()
    // кори goroutine-и аввал
}()

go func() {
    defer wg.Done()
    // кори goroutine-и дуввум
}()

wg.Wait() // Мехоҳем, ки ҳарду goroutine ба анҷом расанд

Бинобар ин, Wg.Wait() кафолат медиҳад, ки барнома то анҷоми ҳамаи вазифаҳои параллелӣ идома намедиҳад.