1XBET
Задача: Необходимо написать параллельную обработку в кол-ве горутин равном workers. Получаем данные из канала in, над каждым элементом выполняем processData. Передаем результат в out. В дополнение к этому необходимо добавить получение контекста и его обработку. go/concurrency
Заголовок раздела «Задача: Необходимо написать параллельную обработку в кол-ве горутин равном workers. Получаем данные из канала in, над каждым элементом выполняем processData. Передаем результат в out. В дополнение к этому необходимо добавить получение контекста и его обработку. go/concurrency»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}