【发布时间】:2014-09-24 17:08:12
【问题描述】:
我想运行一个内部有 7 个线程的进程,linux 系统中每个线程的堆栈大小为 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(in /usr/include/bits/local_lim.h) 值更改为 8192,默认为 16384。
我们可以运行 8K 堆栈大小的进程吗?有没有下限?还是我进程中的任何线程消耗超过 8K 堆栈大小?
【问题讨论】:
-
ulimit 堆栈仅适用于主线程的堆栈,不适用于任何已创建的线程。为什么要尝试运行大小小于
PTHREAD_STACK_MIN的线程?这是进入你的线程例程所需的最小尺寸。
标签: linux