Горутина, генерирует числа и отправляет их в канал. Далее несколько горутин читают и распределяют их по каналам. Под конец производится обратное действие, из каналов пишутся все числа в один результирующий.
- При правильном выполнении кода:
- Количество и сумма входящих чисел совпадает с количеством и суммой чисел, которые получены из канала вывода.
- Количество проходящих чисел по каналам не должно сильно отличаться.
Числа генерируются с помощью context.WithTimeout
в течение одной секунды.
Количество обрабатывающих горутин зависит от числа ядер runtime.NumCPU()
.
Вышеуказанные параметры можно изменить в cmd/api/app.go
Запуск производится по-умолчанию: go run ./...
Тесты выполняются по-умолчанию: go test -v ./... -count=1