线程堆栈大小-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 3976939
  • 博文数量: 536
  • 博客积分: 10470
  • 博客等级: 上将
  • 技术积分: 4825
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-26 14:08
文章分类

全部博文(536)

文章存档

2024年(3)

2021年(1)

2019年(1)

2017年(1)

2016年(2)

2013年(2)

2012年(10)

2011年(43)

2010年(10)

2009年(17)

2008年(121)

2007年(252)

2006年(73)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: c/c

2010-08-27 10:10:51

做了一些简单测试,想了解操作系统一个进程中到底可以创建多少个线程。
最后发现和: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);
}


阅读(3760) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-08-29 15:53:59

download more than 1000 free it ebooks: http://free-ebooks.appspot.com

|
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图