linux
linux 下线程的默认栈大小是8M
$ ulimit -s
8192 # 8 * 1024KB
查看单个进程暂用堆栈的信息
$ strace -f -p {PID}
临时改变栈空间的大小
ulimit -s 102400 # 改为100MB
ulimit -s unlimited # 不限制
永久修改栈空间大大小
echo -ne
"
* soft stack 102400
"
>>/etc/security/limits.conf
或者
$ sudo echo 'ulimit -s 102400' >> /etc/rc.local # 开机启动的脚本
windows
windows下程序的栈大小是链接时决定的
$ link /stack 102400 ....
程序默认单个线程的栈大小为1M
注:windows32用户态空间大小是2GB,如果fork出线程数过多,导致进程的栈大小超过2GB,程序会崩溃