我的目标是提出可以并行运行的最大线程数。谷歌向我指出了许多链接,它们通过划分 RAM/StackSize 给出了简单的数学计算。在 64 位 Linux 中,我们将线程堆栈大小定义为 10 MB(ulimit -s = 10240kb),RAM 为 4GB,为操作系统留出 1 GB 空间,根据这个数学计算,我可以拥有大约 300 个线程,但我的测试应用程序很小写到〜32297,然后给出内存不足错误。
我用 -Xss 尝试了不同的值,但这些值对线程数几乎没有任何影响,它与 ~32297 相同)。
这给了我一个印象,堆栈大小是可变的,由操作系统决定,并在需要时达到我们定义的最大值,但无论我在哪里阅读,它们的堆栈大小都是静态的
我到底在这里想念什么?