C++ 增加solaris上pthreads子线程的堆栈大小
我正在尝试使用以下代码段增加pthreads的stacksize:C++ 增加solaris上pthreads子线程的堆栈大小,c++,multithreading,stack,pthreads,solaris,C++,Multithreading,Stack,Pthreads,Solaris,我正在尝试使用以下代码段增加pthreads的stacksize: size_t newstacksz = 0xf000; void * arg = 0; int ret = pthread_attr_setstacksize(&attr, newstacksz); if (ret == -1) { std::cout << "Attempt to increase thread stack size failed, resorting to default"
size_t newstacksz = 0xf000;
void * arg = 0;
int ret = pthread_attr_setstacksize(&attr, newstacksz);
if (ret == -1) {
std::cout << "Attempt to increase thread stack size failed, resorting to default" << endl;
ret = pthread_attr_setstacksize(&attr, 0); // minimum allowable
}
pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_JOINABLE);
pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM); // system-wide contention
ret = pthread_create(&tid,&attr,thrfn,arg);
pthread_attr_destroy(&attr);
size\u t newstacksz=0xf000;
void*arg=0;
int-ret=pthread_attr_setstacksize(&attr,newstacksz);
如果(ret==-1){
std::coutpthreads没有最大堆栈大小的概念。因此,无法要求pthread为线程提供“允许的最大”堆栈大小。也无法要求pthread为已知线程集提供建议的最大允许堆栈大小
适合您的特定应用程序的(最大?)堆栈大小取决于很多因素:机器、操作系统、可用内存、预期负载、预期堆栈消耗等,所以pthreads不能告诉您也就不足为奇了。我也不能
你必须弄清楚,你自己的堆栈大小是多少