3

如何减少 C 中线程使用的内存?虽然一个线程需要大约 8 到 10 MB 的内存,但是有什么办法可以减少这个内存呢?

4

2 回答 2

6

是的,您可以设置线程堆栈的大小。

pthread_attr_t attribute;
pthread_t thread;
pthread_attr_init(&attribute);
pthread_attr_setstacksize(&attribute,size); // size may be defined by u as 1024,2048,etc
pthread_create(&thread,&attribute,fun,0);

...................................................

void *fun(void *arg)
{
      ....
}
于 2013-04-25T11:03:07.150 回答
2

正如已经回答的那样,您可以在应用程序中使用 pthread 属性。

但是您也可以使用 ulimit 命令对在当前 shell 中启动的任何应用程序设置限制:

  • ulimit -s: 以 kiB 显示当前限制
  • ulimit -s 1024:将堆栈限制为 1 MiB
于 2013-04-25T14:08:47.770 回答