只是想知道进程何时开始如何确定其堆栈要求,或者每个进程是否以默认堆栈大小开始并且根据需要动态增长。
在我的系统上,堆栈大小的软限制为10M
,硬限制为unlimited
。这是否意味着堆栈可以增长到最大可用RAM?
如果我的进程中有十几个线程,那么堆栈大小会有所不同(假设我没有设置堆栈属性)
答案 0 :(得分:1)
每个进程都以最小尺寸的用户空间堆栈启动,并根据需要自动扩展。
如果违反了软限制,则该过程将终止。该过程可能会提高其自身的软限制,但不高于硬限制。
即使软限制是无限制的,最大可用堆栈大小也受进程地址空间中其他映射的限制,因为它必须是连续的。