【发布时间】:2009-12-22 15:48:50
【问题描述】:
是否可以通过任何方式更改进程可以创建的 pthread 数量的限制? 目前在我的 linux 系统上,我可以创建大约 380 个线程,但我想增加它,只要内存可用。
【问题讨论】:
-
有趣...您是否考虑过这种系统设计的一些含义?想到单点故障 (SPOF)。
-
我不是专家,但我敢打赌,拥有超过 380 个线程会使您的处理器因上下文切换而不堪重负。线程的上下文切换比单独的进程要少,但是您仍然必须保存程序计数器和寄存器文件,也许还有一些我忘记的东西。你认为你需要多少线程?我建议分析您的应用程序以确定 10 个线程与 100 个线程的线程开销,然后尝试推断您的目标线程数。您可能会发现它最终不值得付出努力。或者也许我错了......
-
我几乎不会在任何地方使用它......但我需要它来做一些实验?
-
setrlimit() 手册页 (linux.die.net/man/2/setrlimit) 说:“RLIMIT_NPROC:可以为调用进程的真实用户 ID 创建的最大线程数。”在调用
getrlimit(RLIMIT_NPROC, &rlim);时,我得到以下资源限制:Current=4294967295 Max=4294967295 -
RLIMIT_NPROC 给出每个用户的最大线程数。