Вопрос проверяет понимание связи goroutine, потоков и параметров runtime.
Количество потоков зависит от числа логических процессоров, параметра GOMAXPROCS и характера нагрузки. Runtime может создавать дополнительные потоки при блокирующих системных вызовах. Обычно потоков меньше, чем goroutine. Планировщик управляет этим автоматически.
Go использует модель, в которой количество goroutine не равно количеству потоков.
На число потоков влияют:
Значение GOMAXPROCS.
Количество CPU.
Наличие блокирующих системных вызовов.
Интенсивность I/O.
Runtime:
Создает потоки по мере необходимости.
Может увеличить их число при блокирующих syscall.
Освобождает или переиспользует потоки.
Если:
Несколько goroutine выполняют CPU-задачи — число активных потоков ограничено GOMAXPROCS.
Многие goroutine делают I/O — runtime может создать дополнительные потоки.
Это позволяет:
Эффективно использовать CPU.
Не блокировать выполнение из-за системных вызовов.
Количество потоков определяется параметрами runtime, нагрузкой и поведением программы, а не числом goroutine.