🧠 一句话理解:
概念 | 一句话解释 |
---|---|
进程 | 一个正在运行的程序,是资源分配的基本单位。 |
线程 | 进程内的“执行路线”,是执行调度的基本单位。 |
并发 | 多个任务你一会我一会地执行,宏观上像是同时运行。 |
并行 | 多个任务真正在同一时间点一起执行,是硬件支持的结果。 |
简单的比喻
👨🍳 进程 = 厨房
每个厨房是一个进程,里面有一套完整的厨具(资源),能独立做饭。
🧍♂️ 线程 = 厨师
一个厨房里可以有一个或多个厨师,每个厨师负责做一道菜,他们共享厨房资源(锅、刀)。
🔁 并发 = 一个厨师做多道菜
比如一个厨师边炒菜边煲汤,轮流去照看它们。看上去两道菜同时在做,其实是轮流做。
🧑🍳🧑🍳 并行 = 多个厨师同时做菜
多个厨师每人做一道菜,真的同时在干活。
💻 计算机知识!
✅ 进程(Process)
- 每个运行的程序就是一个进程。
- 每个进程有自己独立的内存空间、变量、文件描述符等资源。
- 比如你开了两个微信、一个浏览器,是三个进程。
✅ 线程(Thread)
- 是进程内的一个执行单元。
- 一个进程可以有多个线程,这些线程共享进程的资源。
- 比如浏览器的主线程负责 UI 渲染,其他线程可能处理网络请求、JS 执行等。
✅ 并发(Concurrency)
- “在同一时间段内交替执行多个任务”。
- 比如单核 CPU,通过操作系统快速切换线程实现多个任务。
- 线程看起来一起跑,实际上是轮流跑(交替)。
✅ 并行(Parallelism)
- 多个任务在同一时刻真正一起运行。
- 比如多核 CPU,每个核都跑一个线程。
🧪 一个常见误区:
❓ 并发 = 并行 吗?
不是!
并发 | 并行 |
---|---|
强调“逻辑上同时” | 强调“物理上同时” |
一个人伪装多个任务 | 多个人真在干不同任务 |
单核 CPU 可实现 | 多核 CPU 才能实现 |