并发和并行。
现在去看一下两个概念,第一个概念叫并发,第二个叫做并行。
·什么叫做并发?它指两个或多个事物同一时间间隔发生,多个进程被交替轮换着执行。在这画这样的一个图,这是事件A,这是事件B。举个例子,事件A是一个吃苹果,一口一口咬着吃苹果。事件B是什么?拿快递,当当敲你家门了,要取快递。
所以可以这样想,在去吃苹果的时候,一口一口咬的时候,快递小哥敲门了,这个时候怎么办?把苹果放桌子上停下,开门拿快递。这是不是交界?苹果没吃完,交替拿完快递,拿完快递放回来,然后继续吃苹果。第一次吃苹果的时候,刚又吃了两口,当当又敲门。
另外的一个快递公司的快递员又来了,他又给我送了快递,把苹果放下,继续拿快递。是不是交替执行?吃苹果,拿快递,吃苹果,拿快递。如果把它们看成是进程,是不是两个进程被交替轮换着执行了?如果在这吃苹果,外面快递小哥敲门不开,什么时候苹果吃完,什么时候拿快递,那叫并发吗?那就不叫了。
·再去看一下什么叫并行?并行指的是两个或多个事件在同一时刻发生,多条命令在同一时刻在多个处理器上同时运行。这就好比跑步的时候,大家都在这开始起跑线上摆一排,教练一发声,一发枪嘣,大家一起往前冲,自己在自个的跑道上,是不是相当于每一条跑道就相当于一个处理器?
在这里又举了一个例子,叫什么?泡脚、打电话和记笔记。事件A是泡脚,事件B是打电话,事件C是记笔记,这三件事情要在同一时刻发生。
可以,拿了一个盆,在地上装上水,把脚放里,这边泡脚,这边再打电话,把手机放在脖子上压住,然后手开始去记电话内容。想下这画面,脚在底下泡着,在泡脚的过程当中不影响脖子夹手机打电话,然后手拿笔记,三件事情同一刻发生,这叫做并行。
现在给大家说完这两个概念,大家课下的时候对这两个概念好好去理解一下。现在去看一下并行,同一时刻在多个处理下运行,它的运行效率是要高一些的。