并发
concurrent / Concurrency
在一段时间内,多个任务都会被处理;但在某一时刻,只有一个任务在执行。
单核 CPU 可以做到并发。比如有两个进程A和B,运行A若干时间后,再运行B若干时间,再回来运行A。因为够快,所以用户体验感觉是同时执行的。
并行
parallel / Parallelism
在同一时刻,有多个任务在执行。
需要硬件上配置多核CPU/多处理器。
更形象的解释
在知乎-并发与并行的区别?,给了一个类比:
你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行。
你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发。
你吃饭吃到一半,电话来了,你一边打电话一边吃饭,这说明你支持并行。
还有一个回答引用了一幅图: