每个线程如何有自己的寄存器?

每个线程如何有自己的寄存器?

线程共享指令、全局和堆区域,但拥有自己的单独堆栈和寄存器。

当 CPU 中的寄存器数量是最终且恒定的时,进程中的每个线程如何拥有自己的寄存器?

答案1

进程线程是一种操作系统构造。当进程中的线程在 CPU 上运行和暂停时,它们的“状态”会被保存和恢复。当线程暂停时,堆栈和寄存器状态会被保存,当线程准备再次运行时,其堆栈和寄存器状态会恢复到 CPU。

进程内线程之间的全局和堆区域是通用的,信息可以在线程之间共享。执行状态(堆栈和寄存器)是不是共享,因为如果是这样的话,那么您所拥有的只是一堆运行完全相同代码而不是不同代码的线程。

这一层的“堆栈和寄存器”是保存的状态,而不是物理 CPU 寄存器。

相关内容