我知道堆栈是每个线程的,但是寄存器是有限的,例如在IA32上,只有8个寄存器。

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

有帮助吗?

解决方案

CPU当前正在运行特定线程时使用寄存器。当操作系统决定从一个线程切换到另一个线程时, 保存 所有寄存器的当前值转为特定于第一个线程的私有内存区域。在第二个线程开始运行之前,OS从 它的 保存的区域。这称为 上下文开关.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top