并发并行

14 篇文章 0 订阅
9 篇文章 0 订阅

把机器的一个核看成一条路,多核机器拥有多条路。

单核机器,只有一条路。

车子比作任务。

        并发,也按字面理解,同一时刻出发,但是车子有快有慢,N个车子参差不齐地在一个道上跑(单核),在道上的某一处,只能有一辆车,其他车在前或者在后。一辆车呼啸而过之后,紧接着是下一辆。和单核在处理多个任务时不停切换类似。

       并行,我们就按字面意思理解,比如N辆车并行,那肯定是同一时刻,这N辆车在并排跑,齐头并进(N个任务在同时被处理)。

N量车子并行跑,由于量可能会很大,因此不可能是只有1条道,N >= 2, 所以这点我们可以确定并行是建立在多条路(多核)的基础上

                   并行,如上图示,一条红线强行脑补成一条路。后排三头驴就是并行

 

                                                   并发,如上图。

        通常所说的并发编程,也就是说它允许多个任务同时执行,但实际上并不一定在同一时刻被执行。在单核处理器上,通过多线程共享CPU时间片串行执行(并发非并行)。而并行则依赖于多核处理器等物理资源,让多个任务可以实现并行执行(并发且并行)

        多线程或多进程是并行的基本条件,但单线程也可以用协程(coroutine)做到并发。简单将Goroutine归纳为协程并不合适,因为它运行时会创建多个线程来执行并发任务,且任务单元可被调度到其它线程执行。这更像是多线程和协程的结合体,能最大限度提升执行效率,发挥多核处理器能力。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值