登录 立即注册
查看: 6368|回复: 0

默认情况

[复制链接]

1156

主题

4183

帖子

4346

积分

超级版主

Rank: 8Rank: 8

积分
4346

逍遥会员章逍遥忠实勋章逍遥荣耀勋章逍遥达人勋章逍遥游戏玩家逍遥论坛达人逍遥新人资格章

发表于 2016-10-24 16:50:30 | 显示全部楼层 |阅读模式
下,一个线程的栈要预留1M的内存空间

  而一个进程中可用的内存空间只有2G,所以理论上一个进程中最多可以开2048个线程

  但是内存当然不可能完全拿来作线程的栈,所以实际数目要比这个值要小。

  你也可以通过连接时修改默认栈大小,将其改的比较小,这样就可以多开一些线程。

  如将默认栈的大小改成512K,这样理论上最多就可以开4096个线程。

  即使物理内存再大,一个进程中可以起的线程总要受到2GB这个内存空间的限制。

  比方说你的机器装了64GB物理内存,但每个进程的内存空间还是4GB,其中用户态可用的还是2GB。

  如果是同一台机器内的话,能起多少线程也是受内存限制的。每个线程对象都要站用非页面内存,而非页面内存也是有限的,当非页面内存被耗尽时,也就无法创建线程了。

  如果物理内存非常大,同一台机器内可以跑的线程数目的限制值会越来越大
CPU要支持虚拟化技术 主板开启VT 关闭Hyper-V 显卡驱动正确 完整系统
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|模拟器|手机模拟器|手游模拟器|安卓模拟器|( 沪ICP备14046591号 )

GMT+8, 2024-3-29 00:01 , Processed in 0.025164 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表