0%

并行&并发&线程&进程

🧠 一句话理解:

概念 一句话解释
进程 一个正在运行的程序,是资源分配的基本单位。
线程 进程内的“执行路线”,是执行调度的基本单位。
并发 多个任务你一会我一会地执行,宏观上像是同时运行。
并行 多个任务真正在同一时间点一起执行,是硬件支持的结果。

简单的比喻

👨‍🍳 进程 = 厨房

每个厨房是一个进程,里面有一套完整的厨具(资源),能独立做饭。

🧍‍♂️ 线程 = 厨师

一个厨房里可以有一个或多个厨师,每个厨师负责做一道菜,他们共享厨房资源(锅、刀)。

🔁 并发 = 一个厨师做多道菜

比如一个厨师边炒菜边煲汤,轮流去照看它们。看上去两道菜同时在做,其实是轮流做

🧑‍🍳🧑‍🍳 并行 = 多个厨师同时做菜

多个厨师每人做一道菜,真的同时在干活


💻 计算机知识!

进程(Process)

  • 每个运行的程序就是一个进程。
  • 每个进程有自己独立的内存空间、变量、文件描述符等资源。
  • 比如你开了两个微信、一个浏览器,是三个进程。

线程(Thread)

  • 是进程内的一个执行单元。
  • 一个进程可以有多个线程,这些线程共享进程的资源
  • 比如浏览器的主线程负责 UI 渲染,其他线程可能处理网络请求、JS 执行等。

并发(Concurrency)

  • “在同一时间段内交替执行多个任务”。
  • 比如单核 CPU,通过操作系统快速切换线程实现多个任务。
  • 线程看起来一起跑,实际上是轮流跑(交替)

并行(Parallelism)

  • 多个任务在同一时刻真正一起运行
  • 比如多核 CPU,每个核都跑一个线程。

🧪 一个常见误区:

❓ 并发 = 并行 吗?

不是!

并发 并行
强调“逻辑上同时” 强调“物理上同时”
一个人伪装多个任务 多个人真在干不同任务
单核 CPU 可实现 多核 CPU 才能实现