并发与并行
总结
介绍了并发与并行的概念,并对比学习。
快速记忆
- 并发 ≠ 同时,而是交错;并行 = 同时,需靠多核。
- 并发是一种让多个任务看似“同时”进行的机制,其实质是任务之间快速切换,适用于资源有限但需要高效利用的场景。
概念
并发(Concurrency)
- 定义: 多个任务在同一时间段内被处理。(注意:时间段)
- 本质: 在单核处理器上,操作系统通过上下文切换(context switching)在不同任务之间快速切换,给人一种同时执行的错觉。
- 特点:
- 多个任务交替执行,共享系统资源。
- 任务执行顺序不确定。
- 提高系统利用率,但单个任务的执行速度可能变慢。
形象比喻: 一个人同时处理多个任务(如做饭 + 接电话)
并行(Parallelism)
- 定义: 多个任务在同一时刻被多个处理器同时执行。
- 本质: 需要多个物理核心或处理器。
- 特点:
- 多个任务同时执行,每个任务都有独立的资源。
- 任务执行顺序确定。
- 大大提高系统吞吐量,但需要更多的硬件资源。
形象比喻: 多人一起做一件事(如多人拼图)。
并发 vs 并行(Concurrency vs Parallelism)
比较项 | 并发(Concurrency) | 并行(Parallelism) |
---|---|---|
定义 | 多个任务在同一时间段内推进 | 多个任务同时执行(物理上真正的同时) |
实现平台 | 单核或多核均可 | 必须多核或分布式系统 |
目标 | 管理多个任务的进展,提升响应性和吞吐量 | 加快整体任务完成速度 |
类比 | 一个人同时处理多个任务(如做饭 + 接电话) | 多人一起做一件事(如多人拼图) |
并发不等于并行,但并行可以看作是并发的一种特殊形式(当有足够硬件资源时)。