CPU切换线程的时候,除了`存储当前线程的本地的数据,程序指针`还会有哪些操作?

多线程的上下文切换:

【上下文切换】对于多线程应用,单CPU通过切片(时间片)的方式来切换线程间的执行,线程切换时需要耗时(保存状态,下次继续)。

当CPU从执行一个线程切换到执行另外一个线程的时候,它需要先存储当前线程的本地的数据,程序指针等,然后载入另一个线程的本地数据,程序指针等,最后才开始执行。这种切换称为“上下文切换”(“context switch”)

对此我有几个问题:
1.CPU切换线程的时候,除了存储当前线程的本地的数据,程序指针还会有哪些操作?
2.程序指针的作用是什么?是否是指定程序执行在哪一行了?

阅读 1.1k
1 个回答

就是保存CPU各个寄存器的值. 别的没了. 你说的程序指针应该就是IP寄存器吧. 指向当前要执行的指令地址.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进