广告
淘宝内部优惠券
当前位置: 开发异常方案库»  » linux最大线程数分析

linux最大线程数分析

开发异常方案库  收集整理于:2020-05-19 10:54:00  浏览:66次
这两天一直被这个问题困扰,现在终于想明白了 有3种可能限制 1,线程的本质是一个进程,所以 ulimit 中的 processes 决定了上限,我的是7000多 2,我用的是Linux64位,网上有分析说每个进程的在物理内存中的8字节64位中最终可以寻址到256t的虚拟内存,反正测试时确定虚拟内存绝对不止4g,我指定几百m的stack大小都是和8m一样跑出4700多个线程,单个进程虚拟内存用尽后才会出现只能create出几十个线程的情况 3给单个线程分配的stack大小,决定了在在这个线程里定义的局部变量等所占空间的大小,原来一个char buf【size】就可以耗尽stack,出错退出可惜我基础不扎实,malloc到堆不行,读文件进来到stack,本质也是读了些8字节的指针进来,搞了我久 4,物理内存的大小,多线程用尽物理内存,出现段错误,无法再创建线程 自己的推测,有不对的地方大家多多指点

------网友观点--------------------

------网友观点--------------------

------网友观点--------------------

------网友观点--------------------
受教!受教!

------网友观点--------------------
受教!受教!

------网友观点--------------------
关注,学习

------网友观点--------------------
关注,学习

------网友观点--------------------
6666666666666666

------网友观点--------------------
资瓷一下

------网友观点--------------------
哇塞。。。。。

------网友观点--------------------
支持。。。。。。。

------网友观点--------------------
关注,学习学习学习学习

------网友观点--------------------
关注,学习学习学习学习

------网友观点--------------------
关注,学习学习

------网友观点--------------------
关注,学习学习

------网友观点--------------------
66666666666666666666666

------网友观点--------------------
大佬大佬啊啊啊

------网友观点--------------------
楼主 物理内存的大小,多线程用尽物理内存,出现段错误,无法再创建线程 请问下程序运行的时候怎么能确定是多线程用尽物理内存,出现段错误,这个问题应该怎么调试呢

------网友观点--------------------
linux /proc 下不是有进程数据统计么,android 上有个工具procmem可以编译看看

------网友观点--------------------
了解了 ,灰常感谢。。。很好

------网友观点--------------------
学到了!!!!!!!!!!!!!!!!

------网友观点--------------------
很好,互相交流学习;;

------网友观点--------------------
关注。学习了啊

------网友观点--------------------
线程不是进程,线程属于某一进程下的程序执行的最小单位。 线程由相关堆栈、寄存器和线程控制表组成 Linux最大进程数 不等于 ulimit -u,因为系统会限制用户最大进程数

------网友观点--------------------
虽然看不懂,我还是给顶了

------网友观点--------------------
关注,学习学习学习学习

------网友观点--------------------
关注一下,学习了,谢谢大佬

------网友观点--------------------

------网友观点--------------------
学习学习,

------网友观点--------------------
了解了,非常不错

------网友观点--------------------
大神啊,学习了

------网友观点--------------------
大佬啊厉害厉害

------网友观点--------------------
太赞了,感谢分享。

------网友观点--------------------
关注,学习

------网友观点--------------------
好像是这样的

------网友观点--------------------
赞一个,biubiubiu

------网友观点--------------------
2. 现在的操作系统实际上是用到48bit 虚拟地址,所以最高可寻址256TB的虚拟内存,其中user space 128TB (0... ~0007FFFFFFFFFFF), kernel space 128TB (FFFF800000000000~FFFFFFFFFFFFFFFF)。 但是如果考虑虚拟内存空间跟线程数量的关系,其实他们没太大关系。

------网友观点--------------------
关注,学习一下

------网友观点--------------------

------网友观点--------------------
学习,各位都是大神!

------网友观点--------------------
楼主好厉害,学习了

------网友观点--------------------
学习了不错哦

------网友观点--------------------
非常好的东西。
发布此文章仅为传递网友分享,不代表本站观点,若侵权请联系我们删除,本站将不对此承担任何责任。
软件开发 程序错误 异常 ybaby.netCopyright © 2020-2026  ybaby 版权所有  桂ICP备17004385号-2 网站地图