Sobes.tech
Junior — Middle

Дар иҷрои барномаи худ оё механизми ҳамоҳангсозии waitgroup-ро истифода бурдед?

sobes.tech AI

Ҷавоб аз AI

Бале, дар забони Go, механизми sync.WaitGroup одатан барои ҳамоҳангсозии чандирон истифода мешавад. Он ба 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() // интизор мешавем, то ҳама Call-ҳои Done анҷом ёбанд
fmt.Println("Ҳама goroutineҳо анҷом ёфт")

Инчунин, WaitGroup кӯмак мекунад, ки параллелизм дуруст идора карда шавад ва барнома пеш аз вақти худ тамом нашавад.