process 和 thread 的 stack 关系请教 ?

请教下:我在1个process 中 开了 20个 thread ,会不会造成 stack 错啊 ?

process 和 thread 的 stack 是在 process 的 stack 中 分出来的么?
有什么函数可以设置 他们的stack 么 ?

process 本身不是执行体,可以执行、调度的是thread,所以process本身没有stack。

每个thread都有自己的stack,在thread切换时一并切换。开很多个线程不会告成stack错。通常stack出错是因为在stack上定义了大的数据结构的情形。

int funcA()
{
       char buf[64][1024][1024];
       char *abuf;

       abuf = alloca(32 * 1024 * 1024);
       ....
}

thread的stack大小,可以在线程被create前,通过设 thread_attr 开修改。也可以在link时指定。

哦,明白了,谢谢你!!!