最大线程数 Windows Threads limit

这周跑一个测试程序的时候出错,发现错误信息是:“线程创建失败”。网上搜索了一下,原来是线程数有限制。

这个限制数和程序本身以及操作系统有关。

我的测试程序是32位的,运行电脑是64位的Windows 10。

32位线程默认栈空间大小是1M,在我的64位的电脑上,32位的程序的最大虚拟内存是4G,所以线程数最多是4096个(4G/1M)。但是下图所示,总线程数超过了4096,我想应该是有部分操作系统自身的64位线程在运行,我们看到的是总数。也不知道对不对,希望知道的麻烦告诉我一下,谢谢。 

64位的程序虚拟内存可达8T,目前来说可以支持一个巨大的线程数。但是受限于实际的物理内存大小。如果内存限制忽略不计的话,下面的表格可以最大线程数

参考链接: https://blogs.technet.microsoft.com/markrussinovich/2009/07/05/pushing-the-limits-of-windows-processes-and-threads/

We are running 32-bit threads on 64-bit machine.

32-bit threads have a default of 1MB reserved for stack.

32-bit processes are given 4GB of address space when they run on 64-bit Windows, the number of threads should be roughly 4096 (4GB divided by 1MB)

Why we have more in the following picture? I think there should be some 64-bit processes/threads were running when we ran the test case.  That's reasonable. But I don't know if it is correct. Can anyone tells me about it.

 64-bit processes have a much larger user-mode address space (8TB). But available memory is obviously still a limiter. We have the threads as the following diagram without pysical memory limit.


Ref: https://blogs.technet.microsoft.com/markrussinovich/2009/07/05/pushing-the-limits-of-windows-processes-and-threads/ 

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 8,029评论 0 10
  • 先从金庸小说中的第一套怪拳——百花错拳说起。这套拳路妙就妙在“似是而非,出其不意”,它不但在武侠小说的武学打斗中别...
    一夕厘阅读 1,404评论 0 0
  • 学着现实点吧 你以为你活在童话世界里啊 现实可不会如此善待你
    小邹同學阅读 231评论 0 0
  • 果不其然,今儿又虚度了一天,所谓的虚度,就是并未把工作提上议程啊啊啊啊!! 早上一直在家收拾,常规吸尘拖地不表,中...
    Depressed猪阅读 584评论 0 49
  • 我们常常强调「学习方法」的重要性,一个有效的「学习方法」至少有两方面的内涵,其一是学习者独特的习惯和实践,其二是关...
    英知学习阅读 3,862评论 0 2

友情链接更多精彩内容