并发和并行是两个非常容易被混淆的概念。
二者都可以表示两个或多个任务一起执行,但偏重点有些不同。
并发:
偏重于多个任务交替执行,而多个任务之间有可能还是串行的。
并行:
真正意义上的“同时执行”。我们所生存的世界就是一个并行世界。例如,家里面有三个人,每个人每天都有自己的事情,且可能互不相关。但是在同一个24小时内,三个人所有的事情都在各自地执行。
实际上,如果系统内只有一个CPU,而使用多进程或者多线程任务,那么真实环境中这些任务不可能是真实并行的。毕竟一个CPU一次只能执行一条指令,这种情况下多进程或者多线程就是并发的,而不是并行的。(操作系统会不停切换多个任务)。真实的并行也只可能出现在拥有多个CPU的系统中(比如,多核CPU等)。