Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 增加solaris上pthreads子线程的堆栈大小_C++_Multithreading_Stack_Pthreads_Solaris - Fatal编程技术网

C++ 增加solaris上pthreads子线程的堆栈大小

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"

我正在尝试使用以下代码段增加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" << 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不能告诉您也就不足为奇了。我也不能

你必须弄清楚,你自己的堆栈大小是多少