<aside> <img src="notion://custom_emoji/c233e7bc-acd0-812b-a811-00030dcd1edc/29e3e7bc-acd0-808e-ac64-007a3fac687d" alt="notion://custom_emoji/c233e7bc-acd0-812b-a811-00030dcd1edc/29e3e7bc-acd0-808e-ac64-007a3fac687d" width="40px" />


☕ 一个生动的比喻:咖啡店

比如一家咖啡店的一名咖啡师(一个 CPU 核心):

1. 只有你一个人(单核 CPU)-> 并发

你只有一个人,但你需要同时处理三件事:

  1. 为顾客 A 点单
  2. 为顾客 B 煮咖啡
  3. 为顾客 C 打包

你不可能 同时 做这三件事。但你可以在它们之间快速切换

在顾客看来,你似乎在同时为他们服务,这就是并发。

在微观上,你(CPU 核心)在任何一个确切的瞬间,都只在做一件事。你通过在不同任务间切换(上下文切换)来管理多项任务。

2. 来了两名咖啡师(多核 CPU)-> 并行

现在店里很忙,老板又请了一名咖啡师。你们俩(两个 CPU 核心)现在可以真正同时工作:

这就是并行。两个(或更多)任务在物理上的同一瞬间被同时执行。