linux中的8K堆栈大小

时间:2014-08-01 13:18:45

标签: linux

我想在linux系统中运行一个内部有7个线程且每个线程有8K堆栈大小的进程(fedora 18)

在我运行进程之前,我在终端中给出了以下命令

$ulmit -s 8   //Want to run my process and its threads each with 8K stack size

$./a.out  // I started my process

使用此命令系统挂起并且没有响应。但是当我发出命令时

$ulimit -s 16 //MY process successfully started.

当我尝试使用8K时,在设置8K之前,我已将PTHREAD_STACK_MIN(在/usr/include/bits/local_lim.h中)值更改为8192,默认情况下为16384。

我们可以运行8K堆栈大小的进程吗?有下限吗?或者我的进程中的任何线程消耗的堆栈大小超过8K?

1 个答案:

答案 0 :(得分:0)

PTHREAD_STACK_MIN不应设置得太低。在启动时,该进程将调用libc函数来启动线程并运行程序。减少低于系统中的默认大小并不是一个好主意。 stack-min不仅适用于函数中的变量。它还用于在进程/线程启动时发生的系统调用。