并行 & 并发

并行 : 并行是指多个任务或者操作再同一时间点上同时执行.(前提是在支持多处理器机器及调度系统上)

并发 : 并发是指多个任务或操作在同一时间段内交替执行, 快速地在多个任务之间切换, 看起来像是同时进行的.

并行 更依赖硬件

TAG: 物理分离, 资源独立

在每个核上独立执行一个任务, 更依赖硬件

并发 更依赖系统

TAG: 资源共享, 时间片, 上下文切换

操作系统通过时间分片实现并发, 快速的在多个任务之间切换, 每个任务获得一小段CPU时间.

从物理层面了解

并行: 多个任务在物理上同时进行, 需要多个处理器或多核处理器来实现

并发: 多个任务在逻辑上同时进行, 实际是在单个处理器上通过快速切换来实现

问题

并行: 包括负载均衡、通信开销、数据一致性等。需要处理任务之间的同步和通信问题。此外,并行程序可能受到资源限制(如内存带宽、网络延迟等)的影响,导致性能不如预期。

并发: 包括死锁、竞态条件、资源同步等。可以提高程序的响应性和吞吐量,但过多的上下文切换会增加系统开销,降低整体性能。