我正在使用c语言中的setjmp()和longjmp()在多线程环境下编写程序。
我不确定如何最好地为每个线程分配堆栈空间。在更大规模的线程环境中必须动态完成,但我无法想出一种跟踪线程使用的堆栈量以便修改分配量的方法。
我可以像这样预先分配静态空间:
void call_with_cushion (void) {
char space[1000];
space[999] = 1; /* Do not optimize array out of existence */
child();
}
(来自维基百科http://en.wikipedia.org/wiki/Setjmp.h的代码片段)但这似乎过于死板,我只是想知道多线程环境通常如何为每个线程分配内存?谢谢。