一个进程最多可以创立多少个线程

  • 电脑网络维修
  • 2024-11-15

前言

话不多说,先来张脑图~

linux 虚构内存常识回忆

虚构内存空间长啥样

在 Linux 操作系统中,虚构地址空间的外部又被分为内核空间和用户空间两部分,不同位数的系统,地址空间的范畴也不同。比如最经常出现的 32 位和 64 位系统,如下所示:

经过这里可以看出:

32 位虚构内存空间

经过这张图你可以看到,用户空间内存,从低到高区分是 6 种不同的内存段:

在上方的内存段中,堆和文件映射段的内存是灵活调配的。比如说,经常使用 C 规范库的malloc()或许mmap(),就可以区分在堆和文件映射段灵活调配内存。

64 位虚构内存空间

我们知道在 32 位机器上,指针的寻址范畴为 2^32,所能表白的虚构内存空间为 4 GB。

那么我们或许会以为在 64 位机器上,指针的寻址范畴为 2^64,所能表白的虚构内存空间为 16 EB 。虚构内存地址范畴为:0x0000 0000 0000 0000 0000 - 0xFFFF FFFF FFFF FFFF 。

理想上在目前的 64 位系统下只经常使用了 48 位来形容虚构内存空间,寻址范畴为 2^48 ,所能表白的虚构内存空间为 256TB。

从上图中我们可以看出 64 位系统中的虚构内存规划和 32 位系统中的虚构内存规划大体上是差不多的。

创立一个线程须要消耗多大虚构内存

前面我们也引见了栈段,包括部分变量和函数调用的高低文等。栈的大小是固定的,普通是 8 MB。当然系统也提供了参数,以便我们自定义大小;

如今我们来验证一下,口头 ulimit -a 这条命令,检查进程创立线程时自动调配的栈空间大小

影响一个进程可创立多少线程的条件

虚构内存空间下限

32位系统

在 32 位 Linux 系统里,一个进程的虚构空间是 4G,内核分走了1G,用户能用的只要 3G。

创立一个线程须要占用 8M 虚构内存,总共有 3G 虚构内存可以经常使用。于是我们可以算出,最多可以创立差不多 380个(3G/8M)左右的线程。

假构想使得进程创立上千个线程,那么我们可以调整创立线程时调配的栈空间大小,比如调整为 512k:

[ecs-user@iZ2ze923utbhhwxwgc0pd9Z ~]$ ulimit -s 512

64位系统

64 位系统象征着用户空间的虚构内存最大值是 128T,这个数值是很大的,一个线程需占用 8M 栈空间的状况来算,那么通常上可以创立 128T/8M 个线程,也就是 1000多万个线程,有点魔幻!

所以按 64 位系统的虚构内存大小,通常上可以创立有数个线程。

系统参数限度

前面学习我们了解到了64 位系统的虚构内存大小,通常上可以创立有数个线程。不过理想上,必需创立不了那么多线程,除了虚构内存的限度,还有系统的限度。

比如上方这三个内核参数的大小,都会影响创立线程的下限:

总结

最后便捷总结下:

  • 关注微信

本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载联系作者并注明出处:https://duobeib.com/diannaowangluoweixiu/7953.html

猜你喜欢

热门标签

洗手盆如何疏浚梗塞 洗手盆为何梗塞 iPhone提价霸占4G市场等于原价8折 明码箱怎样设置明码锁 苏泊尔电饭锅保修多久 长城画龙G8253YN彩电输入指令画面变暗疑问检修 彩星彩电解除童锁方法大全 三星笔记本培修点上海 液晶显示器花屏培修视频 燃气热水器不热水要素 热水器不上班经常出现3种处置方法 无氟空调跟有氟空调有什么区别 norltz燃气热水器售后电话 大连站和大连北站哪个离周水子机场近 热水器显示屏亮显示温度不加热 铁猫牌保险箱高效开锁技巧 科技助力安保无忧 创维8R80 汽修 a1265和c3182是什么管 为什么电热水器不能即热 标致空调为什么不冷 神舟培修笔记本培修 dell1420内存更新 青岛自来水公司培修热线电话 包头美的洗衣机全国各市售后服务预定热线号码2024年修缮点降级 创维42k08rd更新 空调为什么运转异响 热水器为何会漏水 该如何处置 什么是可以自己处置的 重庆华帝售后电话 波轮洗衣机荡涤价格 鼎新热水器 留意了!不是水平疑问! 马桶产生了这5个现象 方便 极速 邢台空调移机电话上门服务 扬子空调缺点代码e4是什么疑问 宏基4736zG可以装置W11吗 奥克斯空调培修官方 为什么突然空调滴水很多 乐视s40air刷机包 未联络视的提高方向 官网培修 格力空调售后电话 皇明太阳能电话 看尚X55液晶电视进入工厂形式和软件更新方法 燃气热水器缺点代码

热门资讯

关注我们

微信公众号