Golang подпрограмм в цикле - PullRequest
0 голосов
/ 06 февраля 2020

У меня вопрос о программах и каналах.

У меня есть все oop, где я выполняю какую-то работу (создаю несколько json файлов), и я хочу открыть новую ветку для каждого итерации, но в конце я хочу дождаться выполнения каждого потока, чтобы продолжить работу основного потока с этими json файлами:

for item := range *programmes {
    go func() {
        do something
        operationDone <- true
    }()
}

Есть способ сделать это?

Спасибо

1 Ответ

0 голосов
/ 06 февраля 2020

Используйте это

var wg sync.WaitGroup
for item := range *programmes {
    wg.Add(1)
    go func(wg *sync.WaitGroup) {
        do something
        wg.Done()
    }(&wg)
}
wg.Wait()
...