1
Задачи Go Многопоточка
Практика1. Задача: Написать функцию merge для объединения N каналов
Написать код функции, которая делает merge N каналов. Весь входной поток перенаправляется в один канал.
func merge(cs ...<-chan int) <-chan int {
out := make(chan int)
var wg sync.WaitGroup
worker := func(c <-chan int) {
defer wg.Done()
for v := range c {
out <- v
}
}
for _, c := range cs {
wg.Add(1)
go worker(c)
}
go func() {
wg.Wait()
close(out)
}()
return out
}Задача 2
Реализовать обработку данных с помощью Pipeline
Условие: Вы разрабатываете систему обработки данных для подготовки аналитического отчёта о продажах. У вас есть массив чисел, представляющих продажи за каждый день. Нужно выполнить следующие…