寄存器如何在线程之间共享?

时间:2010-10-13 01:49:09

标签: cpu-registers

我知道堆栈是按线程进行的,但寄存器是有限的,就像在IA32上一样,只有8个寄存器。

那么如何在线程之间共享寄存器?

1 个答案:

答案 0 :(得分:29)

CPU在当前运行特定线程时使用寄存器。当OS决定从一个线程切换到另一个线程时,OS 所有寄存器的当前值保存到特定于第一个线程的专用存储区中。在第二个线程开始运行之前,操作系统从保存区域加载所有寄存器的值。这称为context switch