186 字
1 分钟
线程切换时,操作系统要做哪些操作
线程切换比进程切换轻量很多,因为同一进程内的线程共享地址空间和资源,不需要切换页表。
线程切换的核心动作分四步:
- 保存当前线程的上下文:包括 CPU 寄存器、栈指针、程序计数器这些东西,全部存到线程控制块 TCB 里。
- 更新当前线程的状态:比如从运行态改成就绪态或阻塞态。
- 调度器选出下一个要跑的线程:这一步涉及调度算法的决策。
- 恢复目标线程的上下文:把之前保存的寄存器、栈指针、程序计数器全部恢复回去,让线程从上次断掉的地方接着跑。