首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >1个线程= 1,000,000字节。这是真的吗?

1个线程= 1,000,000字节。这是真的吗?
EN

Stack Overflow用户
提问于 2016-05-22 03:07:58
回答 2查看 239关注 0票数 0

所以我读到在MSDN上的这个线程上说

这种并发性带来了许多众所周知的困难.首先,线程是出了名的重量级线程;默认情况下,线程为其堆栈和许多其他系统资源消耗一百万字节的虚拟内存。

我想知道那个号码是从哪来的。Windows操作系统中是否存在为线程提供1,000,000字节内存的常数?这个号码是怎么来的?它是否被确定为一个进程所需的平均字节数?

EN

回答 2

Stack Overflow用户

发布于 2016-05-22 03:16:30

CreateThread有关dwStackSize参数的文档如下

dwStackSize in 堆栈的初始大小,以字节为单位。系统将此值舍入到最近的页面。如果此参数为零,则新线程将使用可执行文件的默认大小。有关更多信息,请参见螺纹堆叠尺寸

下面的链接显示

链接器使用的默认堆栈保留大小为1MB。

因此,如果在调用CreateThread时创建线程而不指定堆栈大小,则默认分配为1MB (1,048,576字节),约为100万字节。为什么选择这个数字作为缺省值并不是我们可以回答的任何问题,因为坐在20多年前( Windows 95和NT 4.0正在开发中的)团队中的MS员工不太可能读到这篇文章。

票数 3
EN

Stack Overflow用户

发布于 2016-05-22 03:15:57

默认情况下,windows默认分配1MB的虚拟内存。这个链接更深入地解释了

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37370136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档