gpt4 book ai didi

c - 使用 setrlimit 设置线程的堆栈大小

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

我正在使用一个库,该库使用默认的 8MB 堆栈大小创建 pthread。是否有可能以编程方式减少库创建的线程的堆栈大小?我尝试在我的 main() 函数中使用 setrlimit(RLIMIT_STACK...) ,但这似乎没有任何效果。 ulimit -s 似乎可以完成这项工作,但我不想在执行程序之前设置堆栈大小。

有什么想法吗?谢谢

更新 1:看来我要放弃使用 setrlimit(RLIMIT_STACK,...). 设置堆栈大小的能力了。我检查了常驻内存,发现它比虚拟内存少了很多。这足以让我放弃尝试限制堆栈大小。

最佳答案

我觉得你运气不好。如果您使用的库没有提供设置堆栈限制的方法,那么您将无法在创建线程后更改它。 setrlimit 和 shell 限制影响主线程的堆栈。

线程是在进程内存空间中创建的,因此在创建线程时会分配它们的堆栈。在 Unix 上,我相信堆栈将按需映射到 RAM,因此如果您不需要它(虚拟内存与常驻内存),您实际上可能不会使用 8 兆内存。

关于c - 使用 setrlimit 设置线程的堆栈大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25019757/

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