并行(parallellism)和 并发(concurrency)的区别是:
解释一:并行是指两个或者多个事件在同一时刻发生;并发是指两个或多个事件在同一时间间隔发生。
解释二:并行是指在不同实体上的多个事件;并发是指在同一实体上的多个事件。
解释三:并行是指在多台处理器上同时处理多个任务;并发是指在一台处理器上“同时”处理多个任务。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
例子一:假设一个有三个学生需要辅导作业,帮每个学生辅导完作业是一个任务
并发:老师甲先给学生A去讲思路,A听懂了自己书写过程并且检查,而甲老师在这期间直接去给B讲思路,讲完思路再去给 C讲思路,让B自己整理步骤。这样老师就没有空着,一直在做事情。
并行:直接让三个老师甲、乙、丙三个老师“同时”给三个学生辅导作业。
例子二:假设吃饭的时候电话来了
并发:你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭。
并行:你吃饭吃到一半,电话来了,你一边打电话一边吃饭。
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
应用程序可以是并发的,但不是并行的,这意味着它可以同时处理多个任务,但是没有两个任务在同一时刻执行(交替执行)。
应用程序可以是并行的,但不是并发的,这意味着它同时处理多核CPU中的任务的多个子任务。
应用程序可以即不是并行的,也不是并发的,这意味着它一次一个地处理所有任务(顺序执行)。
应用程序可以即是并行的也是并发的,这意味着它同时在多核CPU中同时处理多个任务。