**并发关乎同时应对很多事情;并行关乎同时做很多事情。**并发是一种组织程序结构的方式,让多个任务通过交错执行各自推进;并行则是真正地在多个核心上同时执行它们。
它是如何工作的
单个 CPU 核心可以是并发的但不是并行的:它在任务之间快速切换,使它们在时间上重叠,尽管任一瞬间只有一个在运行。并行需要多个核心在同一时刻执行指令。
text
并发(1 核,交错): A--B--A--B--A--B
并行(2 核,同时): A--A--A--A
B--B--B--B
示例
python
():
asyncio.gather(fetch(url1), fetch(url2))
ProcessPoolExecutor() pool:
pool.(heavy_compute, data)
