Skip to content
进阶

一句话答案

上下文切换保存/恢复 CPU 寄存器,进程切换还需切换页表导致 TLB 失效;线程切换比进程快,协程比线程更快。

核心要点

开销来源:

  1. 保存/恢复 CPU 寄存器
  2. 进程切换:页表切换 + TLB 全失效
  3. Cache 冷启动

量级: 进程切换 ~数十微秒,线程切换 ~数微秒

减少: 协程(用户态调度) / 线程池(复用线程) / IO多路复用(减少线程数)

追问与易错

追问方向:

  • 怎么减少上下文切换?
  • 怎么监控切换次数?
  • 自愿和非自愿切换区别?

易错点:

  • ❌ 上下文切换开销可忽略——高频时显著影响性能
  • ❌ 混淆进程和线程切换开销

💡 记忆锚点

上下文切换像换人上场打游戏:要保存当前玩家的进度(寄存器),加载新玩家的存档。进程切换最贵——还要换整个游戏地图(页表切换+TLB全失效,数十微秒);线程切换只换角色不换地图(共享地址空间,数微秒);协程切换在用户态自己换,连裁判(OS)都不用叫,最快。