文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>线程堆栈大小

线程堆栈大小

时间:2010-08-27  来源:g_hk

做了一些简单测试,想了解操作系统一个进程中到底可以创建多少个线程。
最后发现和:stack size              (kbytes, -s) 4096 这个参数有关,可以用ulimit -a查看,修改用ulimit -s

我测试了Linux/HPUX 11.23 IA64两个环境的,测试结果基本差不多。

进程中可以自己设置线程堆栈大小:
  pthread_t     thrid;
  pthread_attr_t attr;

  pthread_attr_init(&attr);
  pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_DETACHED);
  pthread_attr_setstacksize(&attr,4*1024);
 
  for (i=1; i>0; i++)
  {
    if (pthread_create(&thrid, &attr, child_loop, (void *)i) != 0)
    {
      printf("create thread count:%d err:%d-%s\n", i, errno, strerror(errno));
      break;
    }
  }

HPUX最后输出:
....
248 thr#249 loop...
create thread count:249 err:12-Not enough space

int nthr = 0;

static void *child_loop(void *argv)
{
  int i = (int)argv;

  while (1)
  {
    printf("%d thr#%u loop...\n", i, (uint32_t)pthread_self());
    sleep(6);
  }

  return (NULL);
}

int main(int argc, char **argv)
{
  int i;
  pthread_t thrid;
  
  for (i=1; i>0; i++)
  {
    if (pthread_create(&thrid, NULL, child_loop, (void *)i) != 0)
    {
      printf("create thread count:%d err:%s\n", i, strerror(errno));
      break;
    }
  }

  return (-1);
}


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载