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

Linux有几个线程?

发布网友 发布时间:2022-07-13 00:07

我来回答

1个回答

热心网友 时间:2023-01-21 22:36

前三个和最后一个是两个类型。前三个主要是Linux用来创建新的进程(线程)而设计的,exec()系列函数则是用来用指定的程序替换当前进程的所有内容。所以exec()系列函数经常在前三个函数使用之后调用,来创建一个全新的程序运行环境。Linux用init进程启动其他进程的过程一般都是这样的。
下面说fork、vfork和clone三个函数。这三个函数分别调用了sys_fork、sys_vfork、sys_clone,最终都调用了do_fork函数,差别在于参数的传递和一些基本的准备工作不同。可见这三者最终达到的最本质的目的都是创建一个新的进程。在这里需要明确一下,Linux内核中没有独立的“线程”结构,Linux的线程就是轻量级进程,换言之基本控制结构和Linux的进程是一样的(都是通过struct task_struct管理)。
fork是最简单的调用,不需要任何参数,仅仅是在创建一个子进程并为其创建一个独立于父进程的空间。fork使用COW(写时拷贝)机制,并且COW了父进程的栈空间。
vfork是一个过时的应用,vfork也是创建一个子进程,但是子进程共享父进程的空间。在vfork创建子进程之后,父进程阻塞,直到子进程执行了exec()或者exit()。vfork最初是因为fork没有实现COW机制,而很多情况下fork之后会紧接着exec,而exec的执行相当于之前fork复制的空间全部变成了无用功,所以设计了vfork。而现在fork使用了COW机制,唯一的代价仅仅是复制父进程页表的代价,所以vfork不应该出现在新的代码之中。在Linux的manpage中队vfork有这样一段话:It is rather unfortunate that Linux revived this specter from the past. The BSD man page states: "This system call will be eliminated when proper system sharing mechanisms are implemented. Users should not depend on the memory sharing semantics of vfork() as it will, in that case, be made synonymous to fork(2)."
clone是Linux为创建线程设计的(虽然也可以用clone创建进程)。所以可以说clone是fork的升级版本,不仅可以创建进程或者线程,还可以指定创建新的命名空间(namespace)、有选择的继承父进程的内存、甚至可以将创建出来的进程变成父进程的兄弟进程等等。clone和fork的调用方式也很不相同,clone调用需要传入一个函数,该函数在子进程中执行。此外,clone和fork最大不同在于clone不再复制父进程的栈空间,而是自己创建一个新的。
关于Linux命令的介绍,看看《linux就该这么学》,具体关于这一章地址3w(dot)linuxprobe/chapter-02(dot)html
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
手机导航地图语音怎么下载 如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 奥格瑞玛传送门大厅怎么走 锻炼颈椎的几个动作 水多久能结冰 冰能在多长时间内形成 请问水低于0度会结冰吗? 如何防止脱发严重 超智能足球苏菲会不会很高迅结婚 广州高迅香利企业管理有限公司怎么样? 龙源技术股票一年走势?龙源技术未来估值分析?龙源技术最新消息股民? 龙源技术股票最近走势?龙源技术资产负债表环比分析?300105龙源技术建仓价? 龙源技术长期走势?2021龙源技术股票走势?龙源技术股发行价多少钱? 龙源技术股未来股票走势?最新龙源技术行情分析?2021龙源技术股价? 评龙源技术今天走势?龙源技术股票2021年走势?龙源技术股价格多少钱一个? big bang谎言Mv的剧情? 企业版是什么?都有哪些什么功能介绍? 2020年艺考生考前补习还有用吗?郑州市艺术生文化课高考培训哪个学校好? 有什么办法把紫色变成什么颜色是红色? 舌苔厚,白,有牙印,便秘多年,已有痔疮。好像是气虚、脾湿、寒湿。该吃什么药? 脾湿 脾虚 应该吃什么中药啊 ?脾湿的主要症状是什么啊?谢谢您_百度知 ... 两种关于第一实体的理论是什么? 实体理论为什么设置少数股东权益 自1840-1919年,西方对中国发动了哪些军事攻略?签订了哪些不平等条约? 建团一百周年手抄报的简介怎么写 沣西万博酒店地址在哪 西安酷淘网络科技有限公司怎么样? 陕西咸阳沣西新城先河之星属于哪个市哪个区? 炖白鲢鱼时放什么蔬菜最好吃 自走棋怎么复盘 春日忆李白的作者怎么写的? 李宇春的歌。当半个地球外还有个你,当世界下着雨我在这里。这个歌名字。 如何在银行官网上查询余额 什么是levy索杆体系? 被封如何解开 血液中HCG值为多少可以确定怀孕? - 信息提示 同房后第十天去测了血hcg,多少值才算怀孕了。 柯尼卡美能达复印机282,开机故障,维修代码C3452,跪求解决方案 人工授精15天到医院测血1.39是不是就可以肯定没有怀孕? 谁知道<半半歌>?全诗及作者,还有作者简介?? 五育并举特爸实贱作业的目的 赣州烹饪学校的学费会存在乱收费的情况吗? 最近,要举行全国小学生作文大赛,六年级的作文题目我想写我最喜欢的历史人物,但是开头怎么写?要开门见 有关写通海历史人物小学生作文 星途追风的电瓶是什么牌子的,质量怎么样 三元锂电池被叫停 国轩高科怎么看 华为p50和pro5G有什么区别?