进程 / 线程 / 协程(面试速记)

面试向:一页区分进程/线程/协程,含内存共享、调度单位、开销与典型陷阱。

#resource / operating-system #type / concept #status / evergreen

[!info] related notes 操作系统 MOC 进程&线程&协程(长文) JavaScript中的进程、线程与协程 worker-threads

进程 / 线程 / 协程(面试速记)

一句话:

  • 进程:资源分配与隔离的基本单位
  • 线程:CPU 调度的基本单位(进程内执行流)
  • 协程:用户态调度的轻量执行单元(切换由程序控制)

1) 进程

  • 拥有:独立地址空间、文件描述符、内核对象等
  • 优点:隔离强、崩溃影响面更小
  • 代价:创建/切换/通信成本更高(IPC)

2) 线程

  • 同进程线程共享:代码段、数据段、堆、打开文件、地址空间
  • 线程私有:PC、寄存器、栈
  • 优点:共享数据方便,切换比进程轻
  • 风险:共享导致竞态/死锁/可见性问题,一个线程崩溃可能带崩进程

3) 协程

  • 用户态调度,切换开销小
  • 常用于高并发 I/O:大量任务在等待 I/O,不适合“一任务一线程”
  • 是否能利用多核取决于运行模型(单线程协程通常不并行)

高频陷阱

  • “并发”不等于“并行”
  • 线程共享内存所以要同步;进程隔离所以通信要 IPC
  • 协程不是 OS 线程:协程切换不等于线程切换
创建于 2026/3/16 更新于 2026/5/27