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

本文通过实验探讨了在固定栈大小下,一个进程能够创建的最大线程数,并解释了其限制因素,包括理论最大值及实际运行时的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

  

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

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值