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

linux c 程序线程问题.

发布网友 发布时间:2023-07-24 03:14

我来回答

3个回答

热心网友 时间:2024-11-24 06:27

linux 系统中单个进程的最大线程数有其最大的* PTHREAD_THREADS_MAX
这个*可以在 /usr/include/bits/local_lim.h 中查看。

对 linuxthreads 这个值一般是 1024,对于 nptl 则没有硬性的*,仅仅受限于系统的资源
这个系统的资源主要就是线程的 stack 所占用的内存,用 ulimit -s 可以查看默认的线程栈大小,一般情况下,这个值是 8M。

可以写一段简单的代码验证最多可以创建多少个线程
int main() { int i = 0; pthread_t thread; while (1) { if (pthread_create(&thread, NULL, foo, NULL) != 0) return; i ++; printf("i = %d\n", i); } }
试验显示,在 linuxthreads 上最多可以创建 381 个线程,之后就会返回 EAGAIN
在 nptl 上最多可以创建 382 个线程,之后就会返回 ENOMEM
这个值和理论完全相符,因为 32 位 linux 下的进程用户空间是 3G 的大小,也就是 3072M,用 3072M 除以 8M 得 384,但是实际上代码段和数据段等还要占用一些空间,这个值应该向下取整到 383,再减去主线程,得到 382。
那为什么 linuxthreads 上还要少一个线程呢?这可太对了,因为 linuxthreads 还需要一个管理线程。

为了突破内存的*,可以有两种方法
1) 用 ulimit -s 1024 减小默认的栈大小
2) 调用 pthread_create 的时候用 pthread_attr_getstacksize 设置一个较小的栈大小
要注意的是,即使这样的也无法突破 1024 个线程的硬*,除非重新编译 C 库

热心网友 时间:2024-11-24 06:28

创建线程是有上限的,你以为可以任意创建吗?

如果线程创建了很多,每个线程即使很简单,想要马上完成任务退出也是一件困难的事情,在加上上下文切换,一定会导致创建太多线程错误的出现的。

何况你没有清理线程状态。

热心网友 时间:2024-11-24 06:28

狄仁杰: 元芳楼上的回答你怎么看!,
元芳: 大人那不科学.

LZ,对于这种问题我只能说你对linux的线程一点都不了解.
去百度看看什么叫做线程的分离状态(detached state)吧.
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 酒魔陈立新的酒怎么样 三十六酒坊古法天锅纯手工价格? 杭州西城广场4楼电影院10.2电影安排表 黑鲩鱼用什么料好钓 如何区分巴林石和寿山石 寿山石与巴林石区别 急求潮州台民生直播室前的陈桥国际公寓的广告的那首英文歌叫什么名字... 潮州市永金商贸超市有限公司怎么样? 你让我如此... 半命题作文 、 急求、、、 周星驰身家,来看看身家十几亿的周星驰开什么车 倒酒问题 清明节时老酒为何要倒三遍? 非法集资案判多少年 我在快手看了一段视频,是敷什么面膜祛斑,靠谱吗? 画眉鸟祛斑忌口食物 湖北事业编考试一年考几次 步步高无绳电话机故障 步步高56e无绳电话 ...风格很像蔡依林的电话皇后。女生唱的,很活泼,歌词模糊,后面都是三个... (I Can T Get No) Satisfaction (2003 Digital Remaster) 歌词 渗透老廖死了么 ...激光的地方变黑了,皮肤还会变成原来肤色吗? ...之后皮肤变黑,请问还能恢复吗?恢复到原来的肤色。 渗透中的寥文涛是卧底吗 我白癜风白的皮肤治好全黑了,光疗脱皮又变白了,怎么回事? 做斑的地方(是用药水点的真皮斑)皮肤比正常皮肤白,该怎样才能和正常皮肤... 侯耀文的徒弟有哪些人? 北京铁路局铁路工人乘车证区间不符,车上被查怎么办? 火车票超过乘车区间怎么办,急急急 ...我家这十几天,卧室天天都是嗡嗡声,好像还带震动,不知道怎么回事... 炼妖师小说txt全集免费下载 孩子,烫伤后有多半年了,为什么老痒,怎么办 独立电影谈钱伤感情的剧中角色都有那些?都由谁来饰演? i的i次方等于多少(是个实数) sublime text3点击ctrl+B无法运行Python程序? 戴尔笔记本windows系统重装时没有安装系统文件导致无法进入系统和... 简约风格瓷砖的选择简约风格砖搭配技巧 下列物质中属于单质的是( ) A. 氢气 B. 氧化铜 C. 食醋 D. 碘酒_百 ... 网上200元电动缝纫机有买过的吗,能使用吗 日本动漫有什么历史?