Создание простого конвейера обработки данных с использованием каналов

GolangGolangBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом задании вы создадите программу на Go, которая продемонстрирует мощь каналов, построив простой конвейер обработки данных, который передает целые числа между горутинами. Вам нужно будет создать буферизованный канал, записать в него числа от 1 до 5, а затем прочитать и вывести каждое число из канала в том порядке, в котором они были записаны.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL go(("Golang")) -.-> go/ConcurrencyGroup(["Concurrency"]) go/ConcurrencyGroup -.-> go/goroutines("Goroutines") go/ConcurrencyGroup -.-> go/channels("Channels") go/ConcurrencyGroup -.-> go/select("Select") subgraph Lab Skills go/goroutines -.-> lab-437199{{"Создание простого конвейера обработки данных с использованием каналов"}} go/channels -.-> lab-437199{{"Создание простого конвейера обработки данных с использованием каналов"}} go/select -.-> lab-437199{{"Создание простого конвейера обработки данных с использованием каналов"}} end

Создание простого конвейера обработки данных с использованием каналов

В этом задании вы создадите программу на Go, которая продемонстрирует мощь каналов, построив простой конвейер обработки данных, который передает целые числа между горутинами.

Задачи

  • Создать буферизованный канал целых чисел с вместимостью 5 элементов.
  • Записать в канал числа 1, 2, 3, 4 и 5.
  • Прочитать и вывести каждое число из канала в том порядке, в котором они были записаны.

Требования

  • Использовать файл ~/project/data_pipeline.go.
  • Создать буферизованный канал с помощью make(chan int, 5).
  • Использовать оператор отправки в канал <- для записи чисел в канал.
  • Использовать оператор приема из канала <- для чтения чисел из канала.
  • Выводить каждое число с помощью fmt.Println().
  • Убедиться, что все числа были полностью записаны и прочитаны.

Примеры

Запустить программу:

go run data_pipeline.go

Ожидаемый вывод:

1
2
3
4
5

Подсказки

  • Не забудьте использовать ch <- value для отправки значений в канал.
  • Используйте value := <-ch для приема значений из канала.
  • Буферизованные каналы позволяют отправлять несколько значений до блокировки.
  • Закройте канал после записи всех значений, если это необходимо.
✨ Проверить решение и практиковаться

Резюме

В целом, в этом задании вам нужно создать программу на Go, которая использует каналы для построения простого конвейера обработки данных. Вам необходимо создать буферизованный канал, записать в него числа от 1 до 5, а затем прочитать и вывести каждое число из канала в том порядке, в котором они были записаны.