一个进程可以创建多少线程?

来源:互联网 发布:windows键没反应 编辑:程序博客网 时间:2024/05/01 21:54

以前一直没有试过也没怎么想过这个问题,模糊觉得和系统性能与有关系,前2天写个小程序试了一下,如下

  

在我机器上的结果是成功创建了2027个线程,为什么是2027呢,因为每个线程都有自己的栈,编译器默认堆栈大小为1M, 每个进程有2G的用户地址空间,则理论上最多可以创建2048个线程,但考虑到还有代码段、共享库等要占用地址空间,所以2027是比较合理的一个值。(注意,这里可以创建多少线程和机器上的物理内存没有之间关系)

如果在把链接选项的栈大小改变,则能创建的线程也会改变,如下图,改为512k, 则可以创建4040个线程