-1

只是想知道进程何时启动它的堆栈要求是如何确定的,或者每个进程是否都以默认堆栈大小开始并且根据要求动态增长。
在我的系统上,堆栈大小的软限制是10M,硬限制是unlimited. 这是否意味着堆栈可以增长到最大可用 RAM?
如果我的进程中有十几个线程,所有的堆栈大小都会不同(假设我没有设置堆栈属性)

4

1 回答 1

1

每个进程都以最小大小的用户空间堆栈启动,该堆栈会根据需要自动扩展。

如果违反了软限制,则该过程将被终止。该进程可能会提高自己的软限制,但不会高于硬限制。

即使软限制是无限的,最大可用堆栈大小也受到进程地址空间中其他映射的限制,因为它必须是连续的。

于 2012-11-17T04:15:35.183 回答