您当前的位置:首页 > 生活百科 > 知识

线程,进程,协程, 并发,并行,同步,异步概念解析

时间:2020-04-28 11:22:04  来源:  作者:

我相信线程,进程,协程, 并发,并行,同步,异步这几个概念大家在编程过程中肯定会遇到,但是偏偏这几个概念又那么类似,很容易让人模糊,今天我就用这一篇文章来和大家梳理一下这几个概念。

1. 同步与异步

  • 当我们 同步 的执行某个任务时,我们需要等到这个任务执行完给我们反馈结果,我们才能去执行其他的任务。
  • 但是 异步 的执行某个任务时,我们可以不用等这个任务结束就去执行另一项任务。就像常用到的异步刷新操作。通过异步执行的任务执行结束后我们可以通过 回调函数 获得结果。

我们可以明显的看出同步和异步的差别,那异步操作那么好为什么不都使用异步操作呢?同步操作存在的意义是有些任务必须是 按顺序执行 的,就像我们去银行取钱,最起码的保证你的银行账户里有钱你才能取,要不然岂不是去抢银行了:full_moon_with_face:。

2. 并发与并行

2.1 并发 Concurrency

咱们用做早饭来举例,例如说你还没起床,你的女朋友已经早早的起来了,在厨房给你准备早饭,她想给你做一份面包片和煎蛋,她为了能让你尽快的吃上早饭,开了两个锅,一个锅用来煎蛋,一个锅用来煎面包片,但是她为了食物尽可能美味,只能看一下煎蛋的锅,在去看一下烤面包片,这样 每个锅看一分钟,来回切换 ,这样终于把面包片和煎蛋做好了,这时你也睡醒了,吃到了美味的早餐。

你女朋友的这个做早饭的流程就是并发操作,因为她不可能同时将注意力放在两个锅上,只能通过逐渐切换注意力的方式来使任务很好的完成。但是如果你的女朋友可以在两个锅之间切换的足够快:joy:,在旁边看起来就像是她在同时操作两个锅 。

2.2 并行 Parallelism

咱们还是用做早餐为例,现在你和你的女朋友在一起已经很久了,她再也受不了天天早上给你做饭的日子了,所以今天早上她把你也拽起来和她一起做饭。同样还是煎面包片和煎蛋,这时你和你女朋友一份一个锅,你在准备煎蛋,你的女朋友在煎面包片,你俩就这样很和谐的做着自己的事互不干扰,很快就吃到了美味的早餐。

你和你的女朋友同时做饭,每个人操作一个锅的方式就是并行操作。

ps:突然将你想到了,原来自己没有女朋友 。

2.3 图解并发与并行

假设我们有两个任务A和B,我们使用并发执行是这样的。

线程,进程,协程, 并发,并行,同步,异步概念解析

 

可以看到虽然A和B作为两个整体的任务但是未必会直接执行完,而是会在两个任务间来回切换。因为cpu切换的速度实在太快了,所以我们看起来好像是A和B在同时执行,但其实在每个时间点上只有一个任务在执行。

我们再来看一下并行的方式。

线程,进程,协程, 并发,并行,同步,异步概念解析

 

并行操作是指两个任务同时执行的。

3. 进程,线程与协程

3.1 进程 Process

电脑中每个软件的启动就代表一个进程,就是把写的程序加载到操作系统中来执行预定好的任务。操作系统会为进程分配相应的资源来支撑它完成任务,每个进程会分配一个唯一的PID。

线程,进程,协程, 并发,并行,同步,异步概念解析

 

我们这次用老王来举例,假如说老王现在想盖个房子,我们就可以把盖房子这件事作为一个任务,而老王就是负责这个任务的进程。

3.2 线程 Thread

线程是进程的执行实例,是一个程序执行的最小单元,每个进程里的任务会有线程去具体执行。

线程,进程,协程, 并发,并行,同步,异步概念解析

 

我们还是继续说老王,现在盖房子这个任务已经确定下来了,但是他发现自己不会盖,要请个工人来盖房子,于是他去外面请了一个工人A,这个工人A要做搬砖和搬木头的工作,此时这个工人A就是一个 进程 ,老王还要求他这两个任务不能差距太大,要同步进行,所以这个工人A只能搬一趟转头,搬一趟木头,这样的操作就是 单线程的并发操作

干了两天,工人A不高兴了干的活太多了要加钱,这时老王一看一个人干也确实慢,就去外面又请了一个工人B,此时工人B也就对应着一个 线程 ,老王让工人A继续搬砖,而工人B来负责搬木头,这样两个任务就能同时进行了,这就是 多线程的并行操作 。而且此时工人A和工人B是同时 共享着老王提供的资源 。

3.3 进程与线程+单核与多核

其实刚才老王那个例子已经能解释进程与线程的操作了,但是有些不太谨慎。

  • 如果我们使用的是 单核CPU ,那么我们是无法执行并行操作的,只能做到并发,这样来充分调用CPU的资源。
  • 如果我们使用的是 多核CPU ,我们才可以真正的意义上做到并行操作。

我们的操作系统在进程或线程间切换是比较消耗资源的,因为要保存当前运行状态的上下文信息,而且进程或线程的切换是由操作系统决定的,到达运行时间之后,操作系统会将当前执行的任务挂起,我们只能等待下个分配到的时间片来继续执行任务。这也就引出来协程的概念。

3.4 协程 Coroutine

就像我们刚才说到的,任务的切换是操作系统来控制,我们有没有什么办法来减小这种开销呢?我们就可以使用协程, 协程我们可以理解为轻量级的线程 。 协程在执行过程中不会由操作系统直接操作,而是由编译器决定,比如协程A说我当前的任务还得一段时间执行完,我可以让出当前占用的资源了,协程A就会通知调度器,由调度器来分配下一个协程执行。



Tags:异步概念解析   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
我相信线程,进程,协程, 并发,并行,同步,异步这几个概念大家在编程过程中肯定会遇到,但是偏偏这几个概念又那么类似,很容易让人模糊,今天我就用这一篇文章来和大家梳理一下这几个概念...【详细内容】
2020-04-28  Tags: 异步概念解析  点击:(158)  评论:(0)  加入收藏
▌简易百科推荐
在狗界中,有些狗狗比较凶残、霸道,今天我们就来说说被称为“犬中四煞”的4种狗,请认住它们的长相,看见了要绕路走! NO1:黑狼犬产地:中国寿命:11-12年黑狼犬是狼狗的一种,长大高大威猛...【详细内容】
2021-12-28  狗狗知识百科    Tags:   点击:(3)  评论:(0)  加入收藏
现在我们国家提倡一个“匠心”精神,何谓“匠心”精神呢?其实就是要我们向古代八大匠学习,学习他们的精益求精,学习他们的一丝不苟。既然说到八大匠,那么,我们今天就来聊一聊古代的...【详细内容】
2021-12-28  南野笑情    Tags:八大匠   点击:(2)  评论:(0)  加入收藏
当一些破旧的房屋要被拆除的时候我们经常可以看到墙壁上有一个大大的拆字而这个拆字还被圆圈包裹了起来这是为什么呢?一个拆字不是也能表达拆迁的意思吗?为什么还要多此一举呢...【详细内容】
2021-12-28  太空记    Tags:拆迁   点击:(1)  评论:(0)  加入收藏
自1991年第一款锂离子商业化以来,锂离子电池以高比能量的特点迅速占领了便携式电子产品市场,例如我们生活当中手机聚合物电池、无人飞机的高倍率电池、新国标电动车、新能源汽...【详细内容】
2021-12-27  全航工作室    Tags:锂电池   点击:(1)  评论:(0)  加入收藏
一张身份证里藏着惊人的信息。本文将教你如何从身份证号码前6位数看是哪里人。1949年,地级市的数目为54个,地区的数目为170个;1982年,地级市的数目为112个,地区的数目为170个,在此...【详细内容】
2021-12-27  聪颖书签U    Tags:身份证号   点击:(4)  评论:(0)  加入收藏
在每年的公历12月25日,是基督教徒纪念耶稣诞生的日子,我们称为圣诞节。圣诞节这个名称是基督弥撒的缩写,弥撒是基督教会的一种礼拜仪式。耶诞节是一个宗教节,我们把它当做耶稣的...【详细内容】
2021-12-24  长松爱剪辑    Tags:圣诞节   点击:(198)  评论:(0)  加入收藏
2022年1月,新的一年的开端,你的发展会如何?能为你开启一年的好运吗?下面跟着我一起来看看12星座2022年1月发展吧。白羊座优势: 魅力得以展现,爱情顺势而来。弱势: 情绪起伏大,...【详细内容】
2021-12-24  孟依婷啊    Tags:星座   点击:(18)  评论:(0)  加入收藏
DN/De/D/Φ/PN/SDR的区别 D:一般是指管道的内径,管道内壁内圆的直径。 DN:是指公称直径,又称平均外径,既不是管道的外径也不是内径,而是外径和内径的平均值。这是管道及其附件...【详细内容】
2021-12-24  水电小知识    Tags:管材   点击:(10)  评论:(0)  加入收藏
今天是公历2021年12月19日,农历十一月十六,星期日。后天,斗指子,太阳黄经达270°,就到了今年“二十四节气”之第22个节气——冬至节气!冬至,作为中国二十四节气的一个...【详细内容】
2021-12-20  冀豫耕耘    Tags:冬至   点击:(4)  评论:(0)  加入收藏
锂离子电池自从进入市场以来,以其寿命长、比容量大、无记忆效应等优点,获得了广泛的应用。锂离子电池低温使用存在容量低、衰减严重、循环倍率性能差、析锂现象明显、脱嵌锂不...【详细内容】
2021-12-20  全国能源信息平台    Tags:锂电池   点击:(7)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条