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

jus*_*ody 17 cpu-registers

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

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

Gre*_*ill 32

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