gpt4 book ai didi

linux - 一个进程中线程的总堆栈大小

转载 作者:太空宇宙 更新时间:2023-11-04 11:41:15 25 4
gpt4 key购买 nike

我使用 pthreads_attr_getthreadsizes() 获取一个线程的默认堆栈大小,在我的机器上为 8MB。

但是当我创建 8 个线程并为它们分配非常大的堆栈大小(比如数百 MB)时,程序崩溃了。

所以,我想,应该

("Number of threads" * "stack size per thread") < a constant value (e.g. virtual memory size)

?

最佳答案

简短的回答是"is"。

更长的答案是所有线程共享一个虚拟地址空间,因此该空间的用户空间可用部分必须足够大以包含所有线程堆栈(以及代码、静态数据、堆、库以及任何杂项映射)。

数百兆字节的堆栈是您做错事的一个很好的指示,正如他们在经典中所说的那样。

关于linux - 一个进程中线程的总堆栈大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2870836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com