为了账号安全,请及时绑定邮箱和手机立即绑定

Linux中每个进程的最大线程数?

Linux中每个进程的最大线程数?

慕斯709654 2019-06-19 17:12:51
Linux中每个进程的最大线程数?Linux下进程可以创建的最大线程数是多少?如何(如果可能)修改这个值?
查看完整描述

3 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

在实际中,限制通常由堆栈空间决定。如果每个线程获得一个1MB堆栈(我不记得这是否是Linux上的默认堆栈),那么32位系统将在3000个线程之后耗尽地址空间(假设最后一个GB是留给内核的)。

但是,如果使用几十个线程,则很可能会遇到糟糕的性能。迟早,您会得到太多的上下文切换开销,太多的调度程序开销,等等。(创建大量线程只会消耗大量内存。但是很多线程工作这样做会拖慢你,因为他们在为可用的CPU时间而战)

你在做什么这个限制是相关的?


查看完整回答
反对 回复 2019-06-19
?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

Linux在每个进程限制中没有单独的线程,只是对系统上进程总数的限制(线程本质上只是Linux上具有共享地址空间的进程),您可以这样查看:

cat /proc/sys/kernel/threads-max

默认的是内存页/4的数量。

echo 100000 > /proc/sys/kernel/threads-max

对于单个用户创建的进程(以及线程)的数量也有限制,请参阅ulimit/getrlimit有关这些限制的详细信息。


查看完整回答
反对 回复 2019-06-19
  • 3 回答
  • 0 关注
  • 1471 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信