Junior — Middle
Программаңызды ишке ашырууда waitgroup синхрондоштуруу механизмин колдондуңузбу?
sobes.tech AI
AIден жооп
Ооба, Go тилинде sync.WaitGroup механизми көп учурда бир нече goroutine'лердин синхрондоштуруу үчүн колдонулат. Ал негизги goroutine'ге параллелдик тапшырмалардын бүтүшүн күтүүгө мүмкүндүк берет.
Колдонуу мисалы:
var wg sync.WaitGroup
wg.Add(3) // 3 goroutine күтүлүүдө
for i := 0; i < 3; i++ {
go func(id int) {
defer wg.Done() // аяктоо белгиси
fmt.Printf("Goroutine %d иштеп жатат\n", id)
// кандайдыр бир иш
}(i)
}
wg.Wait() // бардык Done чакыруулары аткарылгандан кийин күтүү
fmt.Println("Бардык goroutine аяктады")
Мындайча айтканда, WaitGroup туура параллелизмди башкарууга жардам берет жана программа эрте бүтпөстөн иштейт.