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

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

Linux下进程可以创建的最大线程数是多少?

如何(如果可能)修改这个值?


慕斯709654
浏览 1478回答 3
3回答

潇潇雨雨

在实际中,限制通常由堆栈空间决定。如果每个线程获得一个1MB堆栈(我不记得这是否是Linux上的默认堆栈),那么32位系统将在3000个线程之后耗尽地址空间(假设最后一个GB是留给内核的)。但是,如果使用几十个线程,则很可能会遇到糟糕的性能。迟早,您会得到太多的上下文切换开销,太多的调度程序开销,等等。(创建大量线程只会消耗大量内存。但是很多线程工作这样做会拖慢你,因为他们在为可用的CPU时间而战)你在做什么这个限制是相关的?

蝴蝶不菲

Linux在每个进程限制中没有单独的线程,只是对系统上进程总数的限制(线程本质上只是Linux上具有共享地址空间的进程),您可以这样查看:cat /proc/sys/kernel/threads-max默认的是内存页/4的数量。echo 100000 > /proc/sys/kernel/threads-max对于单个用户创建的进程(以及线程)的数量也有限制,请参阅ulimit/getrlimit有关这些限制的详细信息。
打开App,查看更多内容
随时随地看视频慕课网APP