首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于Linux中的线程

关于Linux中的线程
EN

Stack Overflow用户
提问于 2010-01-11 18:39:49
回答 4查看 1.8K关注 0票数 3

在Linux(RHEL-5)中,单个进程可以处理多少个线程?一旦创建了线程,每个线程可以获得多少堆栈?

EN

回答 4

Stack Overflow用户

发布于 2010-01-11 18:45:17

最大线程数:Maximum number of threads per process in Linux?

堆栈大小:

即使现在提供了pthread_attr_setstacksize()和pthread_attr_setstackaddr(),我们仍然建议您不要使用它们,除非您确实有充分的理由这样做。LinuxThreads的默认堆栈分配策略几乎是最优的:堆栈开始较小(4k),并根据需要自动增长到相当大的限制(2M)。此外,没有可移植的方法来估计线程的堆栈要求,因此自己设置堆栈大小会降低程序的可靠性和不可移植性。

(来自http://pauillac.inria.fr/~xleroy/linuxthreads/faq.html)

票数 3
EN

Stack Overflow用户

发布于 2010-01-11 18:46:52

每个进程的线程数没有最大值。

然而,总的活动线程数是有限制的。可以通过键入以下命令来检索此值:

代码语言:javascript
复制
cat /proc/sys/kernel/threads-max

您还可以更改此值:

代码语言:javascript
复制
echo 99999 > /proc/sys/kernel/threads-max

希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2010-01-11 20:50:18

如果您在32位机器上,那么线程堆栈最终将消耗地址空间,这取决于地址空间的大小,可能小于10000个线程。

10k线程当然是可行的,有些人确实运行生产服务器有这么多,但你真的想要确定这是最好的方式来做你正在做的事情。

如果您正在考虑拥有10k线程,那么您可能无论如何都会有64位的机器,以及大量的ram。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2041224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档