并发

单核 cpu 下,线程实际还是 串行执行 的。操作系统中有一个组件叫做任务调度器,将 cpu 的时间片(windows下时间片最小约为 15 毫秒)分给不同的程序使用,只是由于 cpu 在线程间(时间片很短)的切换非常快,人类感觉是 同时运行的 。总结为一句话就是: 微观串行,宏观并发
一般会将这种 线程轮流使用 CPU 的做法称为并发, concurrent.
image.png|200

并行

多核 cpu下,每个 核(core) 都可以调度运行线程,这时候线程可以是并行的。

💡CPU1 2 上一时刻负责线程2 3 ,下一时刻负责线程3 4

image.png|200

例子

引用 Rob Pike 的一段描述:
并发(concurrent)是同一时间段应对(dealing with)多件事情的能力。可以处理。
并行(parallel)是同一时间段动手做(doing)多件事情的能力。可以一起处理。