关于创建线程的线程栈大小问题

传入0

创建线程的函数会预定一个区域,并由/STACK链接器的开关指定的存储量(这个值由链接器嵌入.exe文件中)来调拨存储器。线程栈的大小使用PE文件头中指定的大小。

传入非0值

函数为线程栈预定空间并为之调拨所需的所有资源。在这种情况下,预定空间的大小由/STACK链接器开关指定,或由该参数指定。具体值的选择取两者的较大值。

/STACK链接器开关

/STACK:[reserve][,commit]

-reserve用于设置为线程栈预留多少地址空间,默认是1MB或4MB
-commit参数指定最初应为栈预留的地址空间调拨多少物理存储空间,默认是一个页面。

预订的地址空间的容量设置了栈空间的大小,可以防止应用程序耗尽内存,也可以发现程序中的bug。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。