更改应用程序的最大pthread数限制

时间:2009-12-22 15:48:50

标签: pthreads limit

是否有可能通过任何方式更改进程可以创建的pthread数量限制? 目前在我的linux系统上,我可以创建大约380个线程,但我希望只要内存可用就增加它。

4 个答案:

答案 0 :(得分:6)

减少用户的筹码量“ulimit -s 1024”;

default: 8MB 
reduced: 1MB 

增加线程数。

设置堆栈大小:pthread_attr_setstacksize(1024)

答案 1 :(得分:3)

你的问题是你没有在有问题的线程上调用pthread_detach。这告诉pthread,当线程终止时,将释放与每个线程关联的资源。您必须在所有线程上调用pthread_join或pthread_release来释放线程资源。这意味着您还必须在pthread_join取消处理程序中调用pthread_detach或泄漏。

答案 2 :(得分:3)

cat /proc/sys/kernel/threads-max

可能在Linux中有效,但在其他UNIX系统中无效。我认为正确的方法是

Maximum number of threads per process - sysconf(_SC_THREAD_THREADS_MAX) failing

适用于某些UNIX系统(如HPUX),但不适用于Solaris或Linux ......

答案 3 :(得分:1)

看看这个:

Maximum number of threads per process in Linux?

请看一下这可能与您的问题有关:

Serve one client with each server thread