问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

一个进程最多包含多少个线程

发布网友 发布时间:2022-05-01 15:52

我来回答

1个回答

热心网友 时间:2022-06-19 02:04

1,在x86平台32位系统,系统占用2GB地址空间,用户方式2GB。如果使用VS,链接程序开关/SACK 或者/F可以设置线程堆栈大小,默认分配一个线程的堆栈大小是1MB,当CreateThread参数的StackSize大小与链接程序设置的不一致时,采用的方法是谁大用谁的,所以用4KB修改当然不会有改变!理论上最大线程数=2GB/1MB=2048。
实际上这个用户方式的2GB并不会全部用作线程堆栈。首先程序的代码和数据、进程环境块、线程环境块、空指针区域等等也需要占用一定的地址空间;再者2GB只是虚拟内存,如果非分页内存被用完,就无法再创建线程,这个与特定机器有关,所以不同机器上做最大线程数测试得到的数字可能不一样。
2,操作系统给一个系统进程提供的空间是2GB ,而一个线程堆栈的空间默认在启动的时候是1MB 那么启动完2000后,基本上就有2GB了,你可以减小默认堆栈的大小。
3,默认情况下,一个线程的栈要预留1M的内存空间而一个进程中可用的内存空间只有2G,所以理论上一个进程中最多可以开2048个线程
但是内存当然不可能完全拿来作线程的栈,所以实际数目要比这个值要小。你也可以通过连接时修改默认栈大小,将其改的比较小,这样就可以多开一些线程。如将默认栈的大小改成512K,这样理论上最多就可以开4096个线程。即使物理内存再大,一个进程中可以起的线程总要受到2GB这个内存空间的*。比方说你的机器装了64GB物理内存,但每个进程的内存空间还是4GB,其中用户态可用的还是2GB。如果是同一台机器内的话,能起多少线程也是受内存*的。每个线程对象都要站用非页面内存,而非页面内存也是有限的,当非页面内存被耗尽时,也就无法创建线程了。
如果物理内存非常大,同一台机器内可以跑的线程数目的*值会越来越大。

在Windows下写个程序,一个进程Fork出2000个左右线程就会异常退出了,为什么?

这个问题的产生是因为windows32位系统,一个进程所能使用的最大虚拟内存为2G,而一个线程的默认线程栈StackSize为1024K(1M),这样当线程数量*近2000时,2000*1024K=2G(大约),内存资源就相当于耗尽。

4,默认每线程1MB堆栈的话,只能开2048线程(如果你的其它系统资源足够的话)。要想开更多线程,只能修改每个线程的堆栈,但实际中是不推荐这样做的,因为如果你的线程因为一些工作因为线程堆栈不够的话,会导致整个进程崩溃.修改堆栈的方法好像只在XP或以上系统有效,windows 2000中不支持。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
容易发财的房地产中介公司名字 我想对自己的房子进行房产评估,去哪里办理,需要... 改字体的时候不小心改错了,全变成格仔了怎么办 手机文件不小心改错名字了怎么办 女生每天早晚各跑步一个小时,配合饮食,一个月瘦多少? 每天早晚各慢跑一小时.一个月能瘦多少斤 爱剪辑怎么去水印 给视频去水印方法 游戏本关机时可以晃吗? 笔记本玩游戏CPU温度高,会花屏 打剑网三一小时声音大,发热,还能继续吗? 接没声音了怎么回事 正在运行的一个进程和一个服务是什么意思 一个进程 什么叫一个进程一个服务 市政工程造价员是考什么造价员证 求优郦昙的《囚爱》小说资源可以给我嘛 囚爱—郦优昙 完结和番外 txt 格式 市政公司需要造价工程师吗?(一般市政公司需要土建的还是安装专业的?) 高级工程师11年;单位总工程师10年对应的技术等级 一个进程是由伪处理机执行的一个程序,这话对吗 工作11年,公司辞退我,能有补偿吗? 一个进程是不是就是一个线程 个人和单位签订小时工每天工作11个小时算不算违法? 工作十一年被辞退,未签订劳动合同,能获得多少赔偿 一个进程是什么 为什么工程税率是11? 机关工作11年,合同工,被辞退有补偿吗? 工作11年被辞退能得到多少赔偿? 临时工在十一长假不加班应该休息几天 武汉大学工学部11教在哪 一个类算是一个进程还是一个线程? 系统进程的每个进程是干什么的?解释一下,越详细越好~! 应用程序一个进程一个服务是什么意思 脸颊两侧有发红发热的迹象,有时候还会发痒 公网单栈和公网双栈的区别 什么叫“双栈”? 隧道与双栈的区别是什么 私网双栈是什么意思 什么是双栈主机? ipv4单线是什么意思 北京首选哪家青年客栈?打算去北京游玩。 什么是Java和c#双栈开发? 数据结构(一)栈(二)双栈表达式求值算法 请教:ipv6与ipv4双栈如何实现 谁了解北京那个客栈比较好??3 上海电信19元套餐能说下吗? 中国电信19元套餐怎么样 中国电信19元套餐多少钱一分钟 电信19元套餐中包含哪些费用? 电信有19元的套餐么?