用户操作
[即时聊天] [发私信] [加为好友]
杨晓华ID:reiskie
15419次访问,排名8259(3),好友0人,关注者1人。
工作在电信行业的软件公司。
reiskie的文章
原创 0 篇
翻译 0 篇
转载 26 篇
评论 2 篇
最近评论
hdnero:wow power leveling
sunxing262:好文,学习....
文章分类
收藏
    相册
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    转载 linux下创建1000个线程?收藏

    新一篇: 动态库中使用STL数据类型 | 旧一篇: VC编译选项

    [问]

    其实我遇到的问题是需要最多能够创建1000个线程,但是现在这个还距离目标太远了。具体应该怎么修改,能否告诉我?谢谢了。


    [答]

    要创建1000个线程,可以先执行ulimit -s 2048。

    这个问题要用程序的方法解决几乎是不可能的。

    因为按RedHat Linux 9.0的posix线程实现,每个线程的父进程都是当前控制台进程,而不是调用pthread_create的那个进程的。而另一方面,在一个进程中能创建的线程个数又主要受堆栈的限制:2G/允许的最大堆栈大小,在i386平台上,控制台进程默认的最大堆栈大小为8M,所以能创建的线程数为2G/8M = 256个。但是,这个8M的限制可以通过命令ulimit修改,从而间接地增大可创建的线程个数。

    这样,你的问题演化为“能否通过程序去修改控制台进程的最大堆栈大小参数?”。个人认为这个通过常规方法很难做到。  

     

    ////////////////////////////////////////////////////////////////////////////////////////////////////////

     

    ulimit

    功能说明:控制shell程序的资源。

    语  法:ulimit [-aHS][-c <core文件上限>][-d <数据节区大小>][-f <文件大小>][-m <内存大小>][-n <文件数目>][-p <缓冲区大小>][-s <堆叠大小>][-t <CPU时间>][-u <程序数目>][-v <虚拟内存大小>]

    补充说明:ulimit为shell内建指令,可用来控制shell执行程序的资源。

    参  数:
      -a  显示目前资源限制的设定。 
      -c <core文件上限>  设定core文件的最大值,单位为区块。 
      -d <数据节区大小>  程序数据节区的最大值,单位为KB。 
      -f <文件大小>  shell所能建立的最大文件,单位为区块。 
      -H  设定资源的硬性限制,也就是管理员所设下的限制。 
      -m <内存大小>  指定可使用内存的上限,单位为KB。 
      -n <文件数目>  指定同一时间最多可开启的文件数。 
      -p <缓冲区大小>  指定管道缓冲区的大小,单位512字节。 
      -s <堆叠大小>  指定堆叠的上限,单位为KB。 
      -S  设定资源的弹性限制。 
      -t <CPU时间>  指定CPU使用时间的上限,单位为秒。 
      -u <程序数目>  用户最多可开启的程序数目。 
      -v <虚拟内存大小>  指定可使用的虚拟内存上限,单位为KB。

    修改ulimit 的参数

    [root@web230 ~]# ulimit -n
    1024

    以修改 limit -n 为例

    vi /root/.bash_profile

    填加 ulimit -HSn 10240 保存退出

    source /root/.bash_profile

    [root@web230 ~]# ulimit -n
    10240

    修改成功!

    发表于 @ 2006年07月09日 16:53:00|评论(loading...)|编辑

    新一篇: 动态库中使用STL数据类型 | 旧一篇: VC编译选项

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © reiskie