В процессе имеется N потоков, и для каждого стека потоков выделяется M байтов памяти. Общий объем памяти, выделенный для использования стека, составляет N x M.
Вы можете уменьшить общий объем памяти, используемой стеком, уменьшив количество потоков (N) или уменьшив объем памяти, выделенной для каждого потока (M).
Часто поток не использует весь стек. Он предварительно выделен «на случай», он понадобится позже, но если поток не использует глубокий путь вызова или не использует рекурсию, ему может не понадобиться все пространство стека, выделенное от его имени.
Поиск оптимального размера стека может быть искусством.