所以我读到在MSDN上的这个线程上说
这种并发性带来了许多众所周知的困难.首先,线程是出了名的重量级线程;默认情况下,线程为其堆栈和许多其他系统资源消耗一百万字节的虚拟内存。
我想知道那个号码是从哪来的。Windows操作系统中是否存在为线程提供1,000,000字节内存的常数?这个号码是怎么来的?它是否被确定为一个进程所需的平均字节数?
发布于 2016-05-22 03:16:30
CreateThread有关dwStackSize参数的文档如下
dwStackSize in 堆栈的初始大小,以字节为单位。系统将此值舍入到最近的页面。如果此参数为零,则新线程将使用可执行文件的默认大小。有关更多信息,请参见螺纹堆叠尺寸。
下面的链接显示
链接器使用的默认堆栈保留大小为1MB。
因此,如果在调用CreateThread时创建线程而不指定堆栈大小,则默认分配为1MB (1,048,576字节),约为100万字节。为什么选择这个数字作为缺省值并不是我们可以回答的任何问题,因为坐在20多年前( Windows 95和NT 4.0正在开发中的)团队中的MS员工不太可能读到这篇文章。
发布于 2016-05-22 03:15:57
默认情况下,windows默认分配1MB的虚拟内存。这个链接更深入地解释了
https://stackoverflow.com/questions/37370136
复制相似问题