(看图就懂系列)并发与并行的区别

  • Post author:
  • Post category:其他

并发与并行的区别

  • 并发(concurrency)是说进程B的开始时间是在进程A的开始时间与结束时间之间,我们就说A和B是并发的。
  • 并行(parallelise)是并发的真子集,指同一时间两个进程运行在不同的机器上或者同一个机器不同核心上。

在这里插入图片描述
这里还要说明一下。

并发和并行是相关的,但是是两个不同的概念

  • Parallel Computing:并行计算

  • Concurrent programming:并发编程

再引用一张图Erlang 之父 Joe Armstrong画的图如下。

在这里插入图片描述

我画的如下。
在这里插入图片描述

只有一个咖啡机的时候,一台咖啡机其实是在并发被使用的。而有多个咖啡机的时候,多个咖啡机之间才是并行被使用的。

  • 并发,指的是多个事情,在同一时间段内同时发生了。
  • 并行,指的是多个事情,在同一时间点上同时发生了。
  • 并发的多个任务之间是互相抢占资源的。
  • 并行的多个任务之间是不互相抢占资源的、只有在多CPU的情况中,才会发生并行。
  • 否则,看似同时发生的事情,其实都是并发执行的。

总结

  • 并发(concurrency)同时间(某段)
  • 并行(parallelise)同时刻(某点)

并发和并行是相关的,但是是不同概念的。

参考地址:漫小话


版权声明:本文为s1156605343原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。