Запущенные программы выполняются одновременно, независимо друг от друга.Обязанностью и обязанностью планировщика goroutine является их обработка.
Goroutine - это легковесный поток: он стоит намного меньше, чем поток ОС, но все же что-то стоит.Начальный стек для новой программы составляет пару килобайт (около 8 КБ) и увеличивается / уменьшается по мере необходимости.См. Goroutines 8kb и поток ОС Windows 1 МБ .
Учитывая, что вы запускаете 100 000 подпрограмм без какой-либо синхронизации, вполне может быть, что у вас будет 100 000 запущенных подпрограмм до завершения любой из них.Предполагаемые требования к памяти для этого будут:
100,000 * 8KB = 800 MB
Таким образом, ваше приложение, использующее 884 МБ, в значительной степени соответствует оценке.