linux最大线程数分析

u010313100 2018-12-01 12:13:25
加精
这两天一直被这个问题困扰,现在终于想明白了 有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,物理内存的大小,多线程用尽物理内存,出现段错误,无法再创建线程 自己的推测,有不对的地方大家多多指点
...全文
15625 47 打赏 收藏 转发到动态 举报
写回复
用AI写文章
47 条回复
切换为时间正序
请发表友善的回复…
发表回复
ASTREC 2020-05-19
  • 打赏
  • 举报
回复
谢谢楼主分享
枫叶会再红吗 2019-12-13
  • 打赏
  • 举报
回复
厉害!!!!!!
superzrb 2019-12-12
  • 打赏
  • 举报
回复
HX_C 2019-06-08
  • 打赏
  • 举报
回复
厉害了, 说的很好
心向大海 2019-05-14
  • 打赏
  • 举报
回复
好贴,学习!楼主辛苦了!!!
  • 打赏
  • 举报
回复
非常好的东西。
weixin_44152238 2019-05-06
  • 打赏
  • 举报
回复
学习了不错哦
qq_26192557 2019-04-24
  • 打赏
  • 举报
回复
楼主好厉害,学习了
qq_44662605 2019-02-16
  • 打赏
  • 举报
回复
学习,各位都是大神!
qq_38660666 2019-01-25
  • 打赏
  • 举报
回复
伤心疯子 2019-01-24
  • 打赏
  • 举报
回复
关注,学习一下
  • 打赏
  • 举报
回复
2. 现在的操作系统实际上是用到48bit 虚拟地址,所以最高可寻址256TB的虚拟内存,其中user space 128TB (0... ~0007FFFFFFFFFFF), kernel space 128TB (FFFF800000000000~FFFFFFFFFFFFFFFF)。 但是如果考虑虚拟内存空间跟线程数量的关系,其实他们没太大关系。
qq_15212699 2019-01-23
  • 打赏
  • 举报
回复
赞一个,biubiubiu
qq_15212699 2019-01-23
  • 打赏
  • 举报
回复
好像是这样的
Degenerate_梅子 2019-01-18
  • 打赏
  • 举报
回复
关注,学习
只是 yyy 2019-01-18
  • 打赏
  • 举报
回复
太赞了,感谢分享。
qq_44559362 2019-01-17
  • 打赏
  • 举报
回复
大佬啊厉害厉害
psp1502005 2019-01-15
  • 打赏
  • 举报
回复
大神啊,学习了
qq_23396955 2019-01-14
  • 打赏
  • 举报
回复
了解了,非常不错
kenluo1979 2019-01-08
  • 打赏
  • 举报
回复
学习学习,
加载更多回复(27)

18,777

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
  • 专题技术讨论区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧