до того, как я положил все данные из слайса в канал
inputData := []int{11, 22, 33, 44}
for _, fibNum := range inputData {
in1 <- fibNum
}
for i, job := range jobs {
switch i {
case 0:
job(in1, out1)
case 1:
job(out1, out2)
case 2:
job(out2, out3)
}
}
В итоге первые 2 элемента попадают в канал и функции начинают читать из канала не дожидаясь завершения цикла
Почему так? Я думал все будет работать последовательно
скорее всего - вы ошибаетесь
а если серьезно ваш код очень сложно читать, не понятно что вы хотите сделать и зачем
В выводе получаю следующий лог из джоб, из чего делаю вывод что в момент запуска job0 в канале лежит только 2 значения Задача сделать некий конвейер функций, передать результаты работы предыдущей джобы в следующую job0 start 11 22 job1 start job1 chan len2 job2 result: 2695364820~2609f1fc7b474cd92cd8ef290f630fac
Делаешь 2 домашку?
Ага 😬
Сделай sync.AwaitGroup
Обсуждают сегодня