如何使用pthreads增加solaris上的c ++线程堆栈大小?

时间:2014-03-11 09:01:01

标签: c++ multithreading stack pthreads heap

增加pthreads的默认stacksize大小的最简单方法是什么?有没有办法调整堆大小,进程级别和单个线程级别?如果新操作符因底层内存泄漏而失败,如何设置新的处理程序来处理错误的分配?

1 个答案:

答案 0 :(得分:1)

  

增加pthreads的默认stacksize大小的最简单方法是什么?

创建新线程时,可以使用pthread_attr_setstacksize设置stacksize。堆栈大小不得小于PTHREAD_STACK_MIN

  

有没有办法调整堆大小,进程级别和单个线程级别?

使用Solaris编译器,您可以尝试使用-xpagesize选项更改pagesize,但无法调整堆的大小(它将与计算机可用的内存一样大)。所有线程只共享一个堆,因此无法按线程调整它。

  

如果新操作符因底层内存泄漏而失败,如何设置新的处理程序来处理错误的分配?

新的处理程序是一个专门的功能,并没有一般的答案,如何使用新的处理程序非常依赖于程序的细节。它不能用于修复内存泄漏,一旦内存泄漏就太晚了,所以你需要首先防止泄漏。 (如果您不知道如何编写新的处理程序,那么您可能不需要使用它。)