当前位置: 技术问答>linux和unix
linux下线程编程的问题
来源: 互联网 发布时间:2015-09-30
本文导语: linux下创建线程的函数,有一个参数是线程的属性,其中有一项是线程的默认栈的大小,我想知道的是设置了这里的默认栈大小后,如果线程运行过程中发现栈不够用了,线程会申请新的栈空间然后继续运行,还是线...
linux下创建线程的函数,有一个参数是线程的属性,其中有一项是线程的默认栈的大小,我想知道的是设置了这里的默认栈大小后,如果线程运行过程中发现栈不够用了,线程会申请新的栈空间然后继续运行,还是线程运行出错了,希望各位能够指点一下。
|
程序在编译时栈的大小已经是确定了.其中变量的相对位置(地址)都是固定的.所以超过某些变量的地址范围就"溢出"了,而不是不会自动增长所以溢出,这和编程的溢出是有不同的,编程的溢出是访问"超出"了.当然溢出也有堆的.但和调用的栈的分配不同了.
无论怎样,变量在压栈时是"自动增长"(本来线程也是由至少有一个固定的栈组成,压栈时各变量都会被压进,而且他们按压进的先前后"自动增长")
本人菜鸟,我来挨骂也来学习!
无论怎样,变量在压栈时是"自动增长"(本来线程也是由至少有一个固定的栈组成,压栈时各变量都会被压进,而且他们按压进的先前后"自动增长")
本人菜鸟,我来挨骂也来学习!
|
栈空间不够不会自动生长的
|
栈不会变!所有可能栈溢出
|
如果栈能自动增长的话就不会有栈溢出的错误了
|
会溢出,但可能没有报错。
|
gz...
|
栈会溢出,说明不会自动增长
|
gz
|
按道理栈会溢出