【发布时间】:2016-02-15 21:45:55
【问题描述】:
我在我的源代码中使用 C++ 和 Windows.h。看了MSDN中的CreateThread API,但还是不明白指定栈大小的本质。默认情况下为 1 MB。但是如果我指定 32 字节会发生什么?
线程中的堆栈大小定义了什么?
请提供详尽的解释,我将不胜感激。谢谢。
【问题讨论】:
-
您链接的页面是这样的:更多信息,请参阅Thread Stack Size。请阅读您自己链接到的文档。
-
可能要求 32 字节的堆栈甚至是不可能的,最小大小应该是一个内存页(通常是 4 KB)。
-
与您的问题无关,但在使用 C++ 时,您应该调用_beginthreadex 而不是CreateThread。这在文档中有明确说明。
-
有一个非常简单的方法来找出发生了什么。试试看。
-
供参考,说明您需要使用 _beginthreadex 的文档已过时。如果您使用的是 Vista 或更高版本,并且您的 Visual Studio 版本没有无可救药地过时,那么 CreateThread 也可以正常工作。 (幸运的是,因为您通常没有选择权!)
标签: c++ multithreading winapi stack