关于C#:为什么默认堆栈大小为0

why is default stack size 0

我正在阅读来自 https://computing.llnl.gov/tutorials/pthreads/ 的 pthreads,它说

Default thread stack size varies greatly. The maximum size that can be
obtained also varies greatly, and may depend upon the number of
threads per node. Both past and present architectures are shown to
demonstrate the wide variation in default thread stack size.

然后它列出了几个处理器的一些默认值,但它从不为任何处理器显示 0。所以我复制粘贴了它的C程序并执行。相关部分是:

1
2
3
4
5
   size_t stacksize;    
   pthread_attr_init(&attr);
   pthread_attr_getstacksize (&attr, &stacksize);
   printf("Default stack size = %li\
"
, stacksize);

我得到了输出:

1
Default stack size = 0

为什么是0?


属性中的堆栈大小是最小堆栈大小,很可能为零。我怀疑在这种情况下,使用该属性创建的任何线程都会获得合理的默认值,例如 4M。

如果你想要默认值,我们的想法是不考虑属性堆栈大小,如果你想强制它为特定最小值,请将其设置为其他值。