标签: cpu-registers
我知道堆栈是按线程进行的,但寄存器是有限的,就像在IA32上一样,只有8个寄存器。
那么如何在线程之间共享寄存器?
答案 0 :(得分:29)
CPU在当前运行特定线程时使用寄存器。当OS决定从一个线程切换到另一个线程时,OS 将所有寄存器的当前值保存到特定于第一个线程的专用存储区中。在第二个线程开始运行之前,操作系统从其保存区域加载所有寄存器的值。这称为context switch。