并行与并发的个人理解

27 Aug 2021

我觉得他们的主语不同。

并行是 cpu 的能力,比如说 cpu 是否支持并行计算,一般多核心就是支持并行的。那么其他他并不在意执行的是什么,只要这两个 cpu 在运行,那他们就在并行计算。

而并发是 os 的能力,他控制 核心 不断切换的 一种现象,是为了最大程序利用 cpu 能力,毫不空闲。即使是单 cpu,os 也可以模拟出多线程。所以只要操作系统支持,不管单核多核,并发都是存在的。

而在 观察者的角度,并不知道任务是由一个核心持续完成,或者一个/多个核心交替执行,

所以他们并没有什么包含不包含关系,而多线程致使的安全性问题,不管是并发还是并行,都是无法避免的。只是站在观察者的角度,我们常说”高并发问题”。

所以可以说,这几个任务是同时发生(并发)的。或者说 cpu 并行完成了这几个任务。因为主语不同,所以都没什么问题。

欢迎指正。