Перейти к содержимому

Необходимо написать параллельную обработку в кол-ве горутин равном workers. Получаем данные из канала in, над каждым эле

go · concurrency1XBETне решено

Необходимо написать параллельную обработку в кол-ве горутин равном workers. Получаем данные из канала in, над каждым элементом выполняем processData. Передаем результат в out. В дополнение к этому необходимо добавить получение контекста и его обработку.

func main() {
in := make(chan int, 100)
out := make(chan int, 100)
// Generating input data
go func() {
for i := 0; i < 100; i++ {
in <- i
}
close(in)
}()
processInParallel(context.Background(), in, out, 5)
for result := range out {
fmt.Println("Processed:", result)
}
}
func processInParallel(ctx context.Context, in <-chan int, out chan<- int, workers int) {
// Write here
}
func processData(data int) int {
time.Sleep(100 * time.Millisecond) // Simulate time-consuming task
return data * 2
}

Источник: 1XBET

Все задачи · Go · Можно ли так делать? →