进程线程协程是什么意思(线程和协程的理解以及它们的区别)
进程线程协程是什么意思(线程和协程的理解以及它们的区别)
2024-11-06 12:16:57  作者:永恒的诺言  网址:https://m.xinb2b.cn/tech/fei233298.html
一、进程#

先来了解一下操作系统的进程:

操作系统对正在运行程序的抽象,这个就是进程(process)。

比如运行一个 web 浏览器,一个 text 文本,都是运行的一个一个进程。

有的人说:进程是程序运行资源的集合。进程是系统资源分配的最小单位等等。

从静态的角度来说,进程确实是运行程序的各种资源集合。

如果你进一步思考,进程里的各种资源都有哪些呢?如下图所示:


(图1:进程资源)

内存管理相关

文件系统

调度相关

信号处理

内核栈

进程各种状态

进程运行时统计信息

进程标识

等等。

可以看出,进程中的资源是相当多的。

从 Linux 操作系统对进程的定义也可以看出。我以前对进程结构 task_struct 分析文章:Linux进程: task_struct结构体成员

多进程:操作系统有多个程序运行,那么就有多个进程,如下所示简图:


​ (图2:多进程简图)

二、线程#2.1 什么是线程?#

《操作系统设计与实现》里说:

在传统操作系统中,每个进程中只存在一个地址空间和一个控制流(thread)。

然后,有些情况下,需要在相同地址空间中有多个控制流并行的运行,就像他们是单独的进程一样(只是他们共享相同的地址空间)。

这些控制流通常被称为线程(thread),有时也称为轻量级进程(lightweight process)。

尽管线程必须在进程中执行,但是线程和进程是可以分别对待处理的两个概念。进程用来集合资源,而线程是 CPU 调度的实体。

线程给进程模型增加的是,允许在同一个进程环境中有多个执行流,这些执行流在很大程度上相对独立。

也即是说,在进程中,程序执行的最小单位(执行流)是线程,可以把线程看作是进程里的一条执行流。

一个进程里可以有一条或多条线程。


​ (图3:进程里的线程)

2.2 为什么会有多线程?#

在一个应用程序执行过程中,应用程序里可能会有多种事件执行。

而有些事件执行一段时间后可能会被阻塞。如果把应用程序执行事件分解成多个并行运行的线程,即可以让程序设计变得简单,如果有阻塞的,

可以把这部分让出行换其他线程执行。

还有一个原因是:

线程比进程更轻量级。所以线程比进程更加容易创建,销毁。

第三个跟第一个有点关系,是关于性能的,若多线程都是 CPU 密集型的,那么不能获取性能上增强。如果有大量计算和大量 I/O 处理,那么

多线程就可以获取性能上的优势,因为允许多线程重叠执行。

多线程的缺点:

对于多线程来说,进程中的资源是共享的,所以会产生资源竞争。当进程中的一个线程崩溃了,会导致这个进程里的其他线程也崩溃。所以有时多进程程序更好,一个进程崩溃不会导致其他进程也崩溃。

三、进程与线程区别#

从上面进程和线程介绍知道,线程是程序执行流的最小单位,进程是操作系统分配资源的单位。

进程与进程之间关系:

进程与进程之间是相互独立的。

线程与进程关系:

线程是进程里的执行流,进程里的线程可以是一个,也可以是多个。

所有线程共享进程里一些资源,比如代码,数据,地址空间,信号处理,打开文件,全局变量等。

同时,线程也有自己的寄存器,程序计数器,堆栈,线程状态等


​ (图4:进程与线程关系)

四、协程#

协程是建立在线程之上,一般是语言级别的 ”多线程“ 模型,比线程更加的轻量级。有的叫它微线程。它是完全运行在用户态里。

协程是在线程之上在进行抽象,它需要线程来承载运行。一个线程可以有多个协程。

比如 Go 语言的 goroutine,它用一个关键字 go 就可以运行一个协程程序。

在 Go 语言里面,协程是由 Go 提供的 runtime 来控制和调度。

协程的优点:

协程栈很小,只有几KB,而线程栈是 1 M,对比起来,创建大量协程需要的内存更少。协程的调度是语言提供的 runtime 来调度,是在用户空间直接调度,不需要在内核空间和用户空间来回切换,浪费效率。能更好的利用 cpu 的多核,提高程序执行性能。避免阻塞,如果协程所在的线程发生了阻塞,那么协程调度器可以把运行在阻塞线程上的协程,调度到其它没有发生阻塞的线程上,继续运行。五:协程与线程区别#协程是运行在线程之上,一个线程可以有多个协程。就像一个进程里可以有多个线程一样。协程能更好的利用多核机制。比如 Go 协程可以控制运行在多少个 CPU 的核上。协程是在用户空间完成调度,由语言提供的 runtime 进行调度完全用户态。线程由内核调度。协程使用内存更小。

文章来自https://www.cnblogs.com/jiujuan/p/16193142.html

  • 孔雪儿分手了吗(无非是恋爱而已)
  • 2024-11-06无非是恋爱而已网剧的娱乐演员你知道几位如今网剧炙手可热,那撑起网剧半边天的演员你知道是谁呢?有各大选秀综艺出道的爱豆们,要知道国内给爱豆的表演舞台本身就很少,所以大多数爱豆出道后,他们都会选择转型做演员,虽然他们不。
  • 羊肉炖萝卜的制作方法(怎么做羊肉炖萝卜)
  • 2024-11-06怎么做羊肉炖萝卜主料:新鲜羊肉、白萝卜、姜、葱、青红小米辣、葱花、香菜羊肉切块放入开水氽水,加入料酒锅洗净放入油,下葱、姜、花椒炒香倒入羊肉和炒,调入十三香、加入料酒炒香加入水炖40-60分钟,将白萝卜切片倒入汤中,。
  • 新生代员工管理中经常遇到的问题(新生代员工新方法管理)
  • 2024-11-06新生代员工新方法管理■文/郑君最近看到台湾电视节目《分手擂台》,其中《19岁富二代与老师的不伦恋》让人印象深刻画面中,这位叫李庆承的孩子多次骂妈妈“老太婆”,并质问妈妈:“你有给过我温暖,给过我关心,给过我爱吗?”很多读。
  • 精灵梦叶罗丽22季新出的公主是谁(冰公主变身异国)
  • 2024-11-06冰公主变身异国《精灵梦叶罗丽》最近可以称得上是最热门的国产3D动画了,虽然叶罗丽第七季已经距离完结过了很长的时间,但是由于漫画版的提前更新,大家对于它的喜爱程度可以说是与日俱增各种跟精灵梦叶罗丽有关的COS作品也随。
  • 曹云金退出德云社全经过(曹云金直播相声的爆火)
  • 2024-11-06曹云金直播相声的爆火您的喜欢,是我持续更新的动力请多“关注”,感谢您的支持假如阅读内容给您带来不满,请您告诉我,后期定会努力改正!谢谢!最近,曹云金仅凭一己之力,居然改变了相声界从发展以来到现在的固守表演形式格局,开始直。
  • 化妆品监管部门解读(行业监管趋严下)
  • 2024-11-06行业监管趋严下随着《化妆品监督管理条例》的发布和一系列化妆品法规政策的出台,监管部门对化妆品行业的监管日益趋紧不止是在占据中国化妆品产业半壁江山的广东,几乎全国各地的药监部门都在多措并举落实化妆品质量抽查检验工作聚。
  • 周易的名言125句(周易名句)
  • 2024-11-06周易名句周易名句君子以果行育德地势坤,君子以厚德载物君子以多识前言往行以畜其德见险而能止,智矣哉不易乎世,不成乎名;遁世无闷,不见是而无闷;乐则行之,忧则违之,确乎其不可拔探赜索隐,钩深致远德薄而位尊,知小而。
  • 陈赫郑恺宿舍还有谁(陈赫的表10万郑恺的表60万)
  • 2024-11-06陈赫的表10万郑恺的表60万在以前,手表的作用只是人们用来看时间的,并没有其他的价值,然而现在,手表的作用更多的是用来装饰或者炫富了!手表已经成了很多成功人士身份地位的象征,想要知道一个人的身价,只需要看他带什么样手表就知道了这。
  • 我的儿媳妇在我眼里是最好的(大家庭里的幸福生活)
  • 2024-11-06大家庭里的幸福生活记者谢白蓉三层楼房里,三对夫妻,七位成员,一个家庭不久前,城南社区推选出一个“最美家庭”提起这个家庭,邻里左右赞不绝口:“婆家娘家住一块,大家其乐融融,多么难得哟!”近日,记者在城南社区工作人员的带领。
  • 推文快穿攻略反派的文(推文lt荣获男主)
  • 2024-11-06推文lt荣获男主作者:冻感超人主角:乐天风其属于快穿文,耽美文,有点小肉肉文最近看的一本小说,超级推荐,虽然是耽美文,乐天绑定了系统成了一名男配,但是每个世界都和男主在一起了,只要女主变心喜欢其他人之后,就立即脱离世。
  • 海贼王洛克斯三点推论(洛克斯悬赏曝光)
  • 2024-11-06洛克斯悬赏曝光海贼王漫画在很早之前就公布了关于罗杰、白胡子、凯多以及黑胡子等人的悬赏后,大家都觉得悬赏的金额不太合适,特别是关于黑胡子的悬赏,他是四皇行列中,最低的一位,只有22亿,拥有双果实的他,为啥悬赏会如此之。